Eu suponho que você pode executar o script com: ./script1.sh
(que inicia o script em um shell) em vez de . script1.sh
(que os fornecerá em seu shell atual)?
Em caso afirmativo:
#!/bin/bash
./script1.sh &&
{ ssh user@remote "cd /path/to/ && script2.sh" ; } &&
./script3.sh &&
./script4.sh
&&
garanta que as seguintes instruções sejam executadas APENAS se o anterior retornou "0" (= "ok") (portanto, certifique-se de que seu script retorne o "0" correto se estiver OK, e alguma outra coisa inteiro, como "1"), se NÃO estiver OK.
(Observe que você pode ter &&
no final de uma linha, como eu fiz aqui, e o seguinte na próxima linha, sem a necessidade de \
a nova linha intermediária. "& ; "no final da linha avisa que a linha pode ser continuada na linha seguinte. [agradeço ao @Dennis por me corrigir: eu achei que também funcionou não colocar um '\ newline' quando" & & " estava na próxima linha, que é mais legível ... mas não funciona.Se você quiser "& &" na próxima linha, você precisa inverter a nova linha anterior])