brian_ch
(usa Arch Linux)
Enviado em 04/11/2014 - 22:24h
unnslacker escreveu:
jnmoreno escreveu:
Olá Wellington,
Muito obrigado pela ajuda.
O sufixo '&& exit' é um comando específico do 7Zip, ou é um comando do terminal que poderia ser utilizado com outros aplicativos executados via terminal?
Pergunto isso, pois se for específico para o 7Zip, ele deve retornar algum valor quando a execução chega ao final e aí eu iria tentar capturar esse valor retornado.
Abs,
Juliano
Podem ser usados em qualquer programa no terminal; o comando tanto pode ser "&& exit" como "; exit". Esses caracteres representam cadeias/filas de comandos no Shell, onde um programa/comando (exit) é executado após o outro (7zip);
Só uma observação, mas tem uma diferença, o && só vai executar o segundo comando se o primeiro for finalizado com sucesso, já ";" executa em qualquer caso (é só um separador mesmo), tente por exemplo abrir um terminal e executar:
cat sldfjlskdfsfdkfdsf ; exit
cat sldfjlskdfsfdkfdsf || exit
cat sldfjlskdfsfdkfdsf && exit
a última linha não vai fechar o terminal. É que o && é um "e" lógico, então se o primeiro for falso ele já sabe que a expressão toda vai ser falsa e não executa o resto.
O "||" é um "ou" lógico, então quando o "cat" retorna falso (por não ter encontrado o arquivo), a expressão com "||" fica:
falso || exit
Então ele não pode fazer o "curto circuito"*, e tem que executar o exit também.
*http://pt.wikipedia.org/wiki/Avalia%C3%A7%C3%A3o_de_curto-circuito
EDIT: Tinha errado a parte do "||" no começo do texto, havia colocado que ele executava em qualquer caso, mas se o primeiro comando for finalizado com sucesso, ele não vai executar o segundo (pois já vai ter informação suficiente pra saber que a expressão vai ser "verdadeira".
Resumindo, se quiser fechar o terminal independente do resultado do comando, creio que o correto seria usar o ";".