Tentando entender este trecho de código:
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
Não tenho certeza o que significa exatamente o -f.
Resposta
A página de manual relevante para verificar isso é a do próprio shell, bash
, porque -f
é a funcionalidade que o shell oferece, é um bash integrado.
No meu sistema (CentOS 7), a bela página de manual cobre isso. O grep
pode não dar os mesmos resultados em outras distribuições. No entanto, se você executar man bash
e, em seguida, pesquisar “-f”, ele deverá fornecer os resultados de que você precisa.
$ man bash | grep -A1 "\-f file$" -f file True if file exists and is a regular file. $
/ div>
Resposta
Em suma, o trecho do código será a origem do arquivo /etc/bashrc
se ele existir, e o a existência é verificada por [
comando para o qual -f
é um operador / parâmetro.
no script de shell avalia o status de saída dos comandos – 0 em caso de sucesso. Portanto, é apropriado fazer algo assim:
if ping -c 4 google.com; then echo "We have a connection!" fi
O comando, no seu caso, é [
que também é conhecido como comando test
. Portanto, seria perfeitamente válido fazer
if test -f /etc/bashrc; then . /etc/bashrc fi
O -f flag verifica duas coisas: o caminho fornecido existe e é um arquivo normal. Se /etc/bashrc
for de fato um diretório ou ausente, o teste deve retornar um status de saída diferente de zero para sinalizar a falha
Este comando originalmente era um comando separado, que não é parte dos comandos embutidos do shell. Hoje em dia, a maioria dos shells do tipo Bourne o têm como embutido, e é isso que o shell usará.
Em uma observação lateral, o /etc/bashrc
parece um arquivo extra desnecessário que seu administrador ou autor original do trecho de código está usando. Existe /etc/bash.bashrc
, que se destina a ser um arquivo rc de todo o sistema para bash, portanto, seria de se esperar que fosse usado.
Veja também: