-
;
: comandos separados por;
são executados sequencialmente. O shell aguarda que cada comando termine por vez. -
&&
: comando após&&
ser executado se, e somente se, comando antes de&&
retornar um status de saída igual a zero. Você pode pensar nisso comoAND
operator. -
|
: um canal. Na expressãocommand1 | command2
A saída padrão do comando1 é conectada por meio de um canal à entrada padrão do comando2.
Existem mais operadores de controle similares, vale a pena mencionar:
-
||
: comando após||
ser executado se, e somente se, comando antes de||
retornar um status de saída diferente de zero. Você pode pensar nisso comoOR
operator. Por favor, note que|
e||
são animais completamente diferentes. -
&
: o shell executa o comando terminado por&
em segundo plano, não espera que o comando termine e retorna imediatamente o código de saída 0. Mais uma vez,&
não tem nada a ver com&&
. -
|&
: uma abreviação de2>&1 |
, ou seja, a saída padrão e o erro padrão do comando1 são conectados à entrada padrão do comando2 por meio do canal.
Além disso, se você usar zsh
, também poderá iniciar o comando com &|
ou &!
. Neste caso, o trabalho é imediatamente renunciado, após a inicialização, não há lugar na tabela de trabalhos.