複数コマンドの実行順序

複数コマンドの実行順序

私はLinuxに初めてアクセスし、スケジュールされたバックアップ用のCronTabを開発しています。;andを使用して複数の順次操作を実行する方法を見つけましたが、&&依存関係がシーケンスにどのような影響を与えるかはわかりません。

私のクローンの仕事は次のとおりです。

# Every day at 0:00 (reboot server and do the hourly backup procedure).
0 0 * * * sh shutdown.sh && sh backup.sh ; sh nas.sh ; sh ftp.sh ; sh startup.sh        

私が望むのは、shutdown.shを実行し、成功するとシーケンスを続行し、失敗した場合はキャンセルすることです。ただスキップしてsh backup.shシーケンスを続けるかどうか心配です。

期待どおりに動作しますか?そうでなければ同様のことが可能ですかshutdown && (backup ; nas ; ftp ; startup)

ベストアンサー1

動作するか失敗することが予想されるいくつかのダミーコマンドを使用してテストしてみてはいかがでしょうか。

$ ls foo && echo ok1 ; echo ok2
ls: cannot access foo: No such file or directory
ok2

$ ls foo && (echo ok1 ; echo ok2)
ls: cannot access foo: No such file or directory

したがって、あなたの直観は正しいようです。 2番目の構造が必要です。


〜のように提案渡すマックサイフ、一般テストの場合true(または:)およびを使用して、存在しないファイルをfalse置き換えることができます。lsしたがって、

$ false && echo ok1 ; echo ok2
ok2

$ false && (echo ok1 ; echo ok2)

おすすめ記事