Eu tenho um script SHELL que está usando um pipe para separar meus dois comandos:
ssh -oBatchMode=yes user@hostname "mysql -u yop -pyop -c yop | echo test"
O problema é mesmo se minha conexão com o MySQL não funcionar, ele faz o echo test
.
Eu gostaria de proibir meu script para executar qualquer comando se o comando anterior não funcionar.
Eu procuro uma solução usando if
mas eu não consegui pensar em nada.
ssh -oBatchMode=yes user@hostname "mysql -u yop -pyop -c yop && echo test"
o &&
O operador executa o segundo comando se e somente se o primeiro for bem-sucedido. Você pode lê-lo como "e depois".
By the way, se você só queria executar os comandos sequencialmente, você usaria um ponto-e-vírgula ;
, como em cmd1; cmd2
. Um cano |
executa dois comandos em paralelo com o stdout do primeiro conectado ao stdin do segundo. Não o que você quer, neste caso.