Trabalhando com construções de fluxo comuns

Para controlar o fluxo do seu script, um shell possui as construções while, if, for e case.

Comando de controle if

O comando if é usado para verificar expressões. Por exemplo, o código a seguir testa se o usuário atual é Tux:

if test $USER = "tux"; then
  echo "Hello Tux."
else
  echo "You are not Tux."
fi

A expressão de teste pode ser tão complexa ou simples quanto possível. a expressão a seguir verifica se o arquivo foo.txt existe:

if test -e /tmp/foo.txt ;
then
  echo "Found foo.txt"
fi

A expressão de teste também pode ser abreviada entre colchetes:

if [ -e /tmp/foo.txt ] ; then
  echo "Found foo.txt"
fi

Outras expressões úteis estão disponíveis em http://www.cyberciti.biz/nixcraft/linux/docs/uniqlinuxfeatures/lsst/ch03sec02.html.

Criando loops com o comando for

O loop for permite executar comandos para uma lista de entradas. Por exemplo, o código a seguir imprime algumas informações sobre arquivos PNG no diretório atual:

for i in *.png; do
 ls -l $i
done