Agrupando e combinando comandos

Os shells permitem concatenar e agrupar comandos para uma execução condicional. Cada comando retorna um código de saída que determina o sucesso ou a falha de sua operação. Se o código for 0 (zero), significa que o comando obteve sucesso. Todos os outros códigos significam erro específico do comando.

A lista a seguir mostra como os comandos podem ser agrupados:

Comando1 ; Comando2

executa os comandos em seqüência. O código de saída não é verificado. A linha a seguir exibe o conteúdo do arquivo com cat e depois imprime suas propriedades com ls, independentemente dos códigos de erro:

cat filelist.txt ; ls -l filelist.txt
Comando1 && Comando2

executa o comando à direita quando o comando à esquerda for bem-sucedido (E lógico). A linha a seguir exibe o conteúdo do arquivo e imprime suas propriedades apenas quando o comando anterior obtiver sucesso (compare com a entrada anterior nesta lista):

cat filelist.txt && ls -l filelist.txt
Comando1 || Comando2

executa o comando à direita quando o comando da esquerda falhar (OU lógico). A linha a seguir cria um diretório em /home/wilber/bar apenas quando a criação do diretório em /home/tux/foo falhar:

mkdir /home/tux/foo || mkdir /home/wilber/bar
nome_da_função(){ ... }

cria uma função shell. Você pode usar os parâmetros de posição para acessar seus argumentos. A linha a seguir define a função hello para imprimir uma mensagem curta:

hello() { echo "Hello $1"; }

Você pode chamar essa função assim:

hello Tux

que imprimirá:

Hello Tux