4つのシェルスクリプトがありますが、順番に実行したいと思います。
スクリプト1 ->スクリプト2 ->スクリプト3 ->スクリプト4
私のローカルコンピュータでは、スクリプトを実行可能にし、次の新しいシェルスクリプトを生成することでこれを保証できます。
#!/bin/bash
. script1.sh
. script2.sh
. script3.sh
. script4.sh
スクリプトの1つがリモートシステム(script2.shなど)にある場合はどうすればよいですか?
- リモートでシェルスクリプトを実行する
- ソートされていることを確認してください。
注:すべてのスクリプトには無限ループがあります。
ベストアンサー1
私はあなたが以下を使用してスクリプトを実行できると仮定します。 ( ./script1.sh
シェルからスクリプトを起動する)代わりに. script1.sh
(これは源泉現在シェルにありますか?)?
もしそうなら、
#!/bin/bash
./script1.sh &&
{ ssh user@remote "cd /path/to/ && script2.sh" ; } &&
./script3.sh &&
./script4.sh
&&
前の命令が「0」(=「ok」)を返す場合にのみ、次の命令が実行されることを確認してください。したがって、スクリプトが一般的な状況では正しい "0" を返し、他のもの (たとえば、小さな正の整数) を返すことを確認してください。 "1")") そうでない場合)。
(&&
ここで行ったように、行の末尾に\
追加してから、途中で改行文字を追加せずに次の行に次を追加できます。修正してくれた@Dennisに感謝します。を使用してください。改行の前にバックスラッシュが必要です。])