複数のコマンドを一緒に実行し、そのいずれかが終了したら完了しますか?

複数のコマンドを一緒に実行し、そのいずれかが終了したら完了しますか?

Webサイトの開発中に、Django開発サーバー、「ウォッチ」モードのSCSS-> CSSコンパイラなど、いくつかのコマンドを連続して実行しました。アプリケーションの開発と実行中にすべて一緒に実行し、必要に応じて停止し、コンソールから出力(アクセスログ、デバッグ印刷など)を確認するための便利なコマンドを持っています。

そのうちの1つがクラッシュしたときにコマンド全体が終了するようにするにはどうすればよいですか?

私は次のことを考えていました。マルチテールまたはtmuxですが、まだ監視と終了部分がありません。自分で書く必要がありますか、すでにユースケースに適したソリューションがありますか?

私はLinux(Ubuntu)を使用しています。

ベストアンサー1

set -eこれを行うには、シェルスクリプトを使用できます。これを使用すると、コマンドがゼロ以外の終了状態を返すと、スクリプトは中断されます。しかし、いくつかのニュアンスがあります。詳細はこちらからご覧いただけます。http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html

例:

#!/bin/bash

set -e
echo this will print
cat -z this is a malformed command which will return non-0
echo this will not print

出力:

$ bash /tmp/test.sh 
this will print
cat: invalid option -- 'z'
Try 'cat --help' for more information.

$

おすすめ記事