Existem duas partes, as duas primeiras linhas e o resto:
export user=$(who am i | sed -e 's/ .*//')
echo $user
imprime o nome do usuário logado. a construção $(...)
atribui a user
qual é a saída do comando entre esses tokens. who
quando invocado com um dois argumentos retorna informações de login no usuário atualmente logado (você pode, por exemplo, usar sintaticamente correto who am I
ou algo completo diferente como who loves popcorn
), a saída disso consiste em várias partes separadas por espaços, e o comando sed
no qual é canalizado, cortes de tudo após o primeiro espaço).
egrep -i "^www-data" /etc/group >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
group='www-data'
else
group='apache'
fi
define group
a www-data
se houver um nome de grupo começando com www-data (sem distinção entre maiúsculas e minúsculas, ou seja, WWW-data
, www-data-hallo
) em /etc/group
, senão group
é definido como a string% código%. Isso é feito usando o comando apache
(reprovado deve usar egrep
) para procurar insensitivo a maiúsculas e minúsculas ( grep -E
) para -i
no início de uma linha ( www-data
) em ^
. Se houver uma correspondência encontrada, /etc/group
(que contém o valor de saída do comando anterior) é 0 e a ramificação $?
da instrução then
é obtida, caso contrário, a ramificação if
é obtida.
Se você deseja verificar se há um grupo com o nome exato else
(diferencia maiúsculas de minúsculas e não apenas começando com essa sequência), é necessário fazer www-data