[解決済み】複数のコマンドのBash終了状態を効率的に確認する方法
2022-04-01 21:26:55
質問
pipefailのように、複数のコマンドをtry文のようにbash内で実行できるものはないでしょうか?このようなことをしたいのですが。
echo "trying stuff"
try {
command1
command2
command3
}
そして、どの時点でも、何かコマンドが失敗したら、ドロップアウトして、そのコマンドのエラーをエコー出力します。というようなことはしたくない。
command1
if [ $? -ne 0 ]; then
echo "command1 borked it"
fi
command2
if [ $? -ne 0 ]; then
echo "command2 borked it"
fi
などなど...何でもいいんです。
pipefail -o
command1 "arg1" "arg2" | command2 "arg1" "arg2" | command3
なぜなら、私が考える各コマンドの引数は(間違っていたら訂正してください)互いに干渉し合うからです。この2つの方法は、私には恐ろしく長文で意地悪に思えるので、ここでもっと効率的な方法を訴えます。
解決方法は?
コマンドを起動してテストしてくれる関数を書けばいいのです。仮に
command1
と
command2
は、コマンドに設定されている環境変数です。
function mytest {
"$@"
local status=$?
if (( status != 0 )); then
echo "error with $1" >&2
fi
return $status
}
mytest "$command1"
mytest "$command2"
関連
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法?
-
[解決済み] /bin/sh: apt-get: 見つかりません。
-
[解決済み] Curl:応答を待たない[重複]。
-
[解決済み] awkシステムコール
-
[解決済み] ファイル内の大文字・小文字を区別しない文字列を grep するには?
-
[解決済み] MINGW64 "make build" エラー。"bash: make: コマンドが見つかりません"
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?
-
[解決済み] bash で複数のサブプロセスが終了するのを待ち、いずれかのサブプロセスがコード !=0 で終了したときに終了コード !=0 を返すにはどうすればよいですか?
-
[解決済み] Bash関数におけるreturnとexitの違いについて
-
[解決済み] Bashでパイプ出力と終了ステータスをキャプチャする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】firebase-tools "-bash: firebase: command not found".
-
[解決済み] ファイルに書き込むが、ファイルが存在する場合は上書きする
-
[解決済み] eval "$(docker-machine env default) "とする。
-
[解決済み] 構文エラー:オペランドが期待される(エラーメッセージは "+")。
-
[解決済み] パイプと二重パイプのどちらの OR 演算子を使うか?
-
[解決済み] bashスクリプトで変数の束縛を解除
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] ファイル内の大文字・小文字を区別しない文字列を grep するには?
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?