Tentando entender esse trecho de código:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Não tenho certeza do que o -f significa exatamente.
Tentando entender esse trecho de código:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Não tenho certeza do que o -f significa exatamente.
Em suma, o pedaço de código será o
/etc/bashrc
arquivo de origem se existir, e a existência é verificada pelo[
comando ao qual-f
é um operador/parâmetro.if...then...else...fi
instrução em script de shell avalia o status de saída dos comandos - 0 em caso de sucesso. Então é correto fazer algo assim:O comando, no seu caso,
[
também é conhecido comotest
comando. Então seria perfeitamente válido fazerO sinalizador -f verifica duas coisas: o caminho fornecido existe e é um arquivo normal. Se
/etc/bashrc
for de fato um diretório ou estiver ausente, o teste deve retornar um status de saída diferente de zero para sinalizar a falhaEste comando originalmente era um comando separado, que não faz parte dos comandos internos do shell. Hoje em dia, a maioria dos shells do tipo Bourne o tem embutido, e é isso que o shell usará.
Em uma nota lateral,
/etc/bashrc
parece um arquivo extra desnecessário que seu administrador ou autor original do snippet de código está usando. Existe/etc/bash.bashrc
, que se destina a ser um arquivo rc de todo o sistema para o bash, então seria de se esperar que fosse usado.Veja também:
A página de manual relevante para verificar isso é a do próprio shell,
bash
, porque-f
é a funcionalidade que o shell fornece, é um bash embutido.No meu sistema (CentOS 7), a página de manual fina cobre isso. O
grep
pode não dar os mesmos resultados em outras distribuições. No entanto, se você executarman bash
e procurar por '-f', ele deverá fornecer os resultados desejados.