[解決済み】コマンドが失敗した場合、どのように終了しますか?重複
2022-04-01 23:54:57
質問
私はシェルスクリプトの素人です。コマンドに失敗した場合、メッセージを表示してスクリプトを終了させたいと思います。私は試してみました。
my_command && (echo 'my_command failed; exit)
が、うまくいきません。スクリプトのこの行に続く命令が実行され続けてしまいます。Ubuntuとbashを使用しています。
どうすればいいですか?
試してみてください。
my_command || { echo 'my_command failed' ; exit 1; }
4つの変更点
-
変更点
&&
を||
-
使用方法
{ }
の代わりに( )
-
導入する
;
後exit
と -
の後のスペース
{
の前と}
メッセージを表示し、コマンドが失敗したとき(ゼロ以外の値で終了したとき)だけ終了したいので、以下のように
||
ではなく
&&
.
cmd1 && cmd2
が実行されます。
cmd2
ときに
cmd1
成功(終了値
0
). ここで
cmd1 || cmd2
が実行されます。
cmd2
ときに
cmd1
が失敗する(終了値が0でない)。
使用方法
( )
は、その中のコマンドを
サブシェル
を呼び出したり
exit
この場合、元のシェルではなくサブシェルが終了するため、元のシェルで実行が継続されます。
この問題を解決するには
{ }
最後の2つの変更はbashが必要とするものです。
関連
-
[解決済み] retqとretの違いは何ですか?
-
[解決済み] 負荷警告: エントリ シンボル _start が見つかりません
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルコマンドを実行しながらエコーする方法
-
[解決済み] bashスクリプトでset -eはどういう意味ですか?
-
[解決済み] cURLでプログレスバーを表示しないようにするにはどうしたらいいですか?
-
[解決済み] 特定のコマンドを無視するBashのエラー
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】nohupプロセスをkillするためにプロセスIDを取得する方法?
-
[解決済み】ハイフン(-)で始まるファイル名を処理する方法は?
-
[解決済み】スラッシュとrsyncコマンド
-
[解決済み] エラー: gdal がインストールされているのに、R 依存パッケージのインストール中に gdal-config が見つからない
-
[解決済み] svn diffコマンドの使用
-
[解決済み] STRACEがEAGAINを表示する理由(リソースが一時的に使用できないため)
-
[解決済み] Linux/Ubuntu のセットです。不正なオプション -o pipefail
-
[解決済み] Nautilusのようにコマンドラインからマウントする方法とは?[クローズド]です。
-
[解決済み] CMakeエラーです。このプロジェクトでは次の変数が使用されていますが、NOTFOUND に設定されています。
-
[解決済み] いずれかのコマンドが0以外の値を返した場合、シェルスクリプトを中断する