Bash スクリプトを終了する

Muhammad Husnain 2023年6月20日
  1. バッシュスクリプトとは
  2. Bash スクリプトの使用を避けるべき場合 (つまり、制限事項)
  3. スクリプトを終了する方法
Bash スクリプトを終了する

この記事では、Bash スクリプトについて簡単に紹介し、エラーが発生した場合に Bash スクリプトを終了する方法について説明します。 さらに、Bash スクリプトの制限と利点についても説明します。

バッシュスクリプトとは

コンピュータのスクリプト/プログラムは、何をすべきか、何を言うべきかをコンピュータに指示します。 同様に、Bash スクリプトは、実行する操作について Bash をガイドする一連のコマンドです。

Bash スクリプトは、実行する一連のコマンドを含む単純なテキスト ファイルです。 このコマンド セットは、Bash インターフェースで直接記述できる多くのコマンド ライン命令 (例: lscdrm など) の順序付けられた組み合わせにすることができます。

コマンド ライン プロンプトから実行されるコマンドは、スクリプトに入力することもでき、コマンド ライン プロンプトと同じ結果が得られます。 同様に、スクリプト ファイル内の各コマンドは、Bash コマンドライン インターフェイスに直接入力することもでき、結果は同じになります。

追加の調整は必要ありません。 構文に従ってコマンドを入力するだけで、同じ結果が得られます。

コマンド ラインに入力する代わりに、単純なテキスト ファイルに入力しています。

拡張子 .sh は一般的に Bash プログラムで使用されます (例: loopScript.sh)。 ご存じのとおり、Linux は拡張機能のないオペレーティング システムです。 したがって、スクリプトが正しく機能するために拡張子は必須ではありません。

Bash スクリプトの使用を避けるべき場合 (つまり、制限事項)

Bash スクリプトを避ける必要がある特定のケースがあります。 それらのいくつかは次のとおりです。

  1. 特に速度が主な焦点である場合に、多くのリソースを必要とするタスク (ソート関数、ハッシュ関数、再帰関数など)
  2. 浮動小数点演算などの多くの数学演算を必要とする関数、または計算に複素数を使用する関数 (代わりに C++ または FORTRAN を使用します)。 異なるプラットフォーム間で移植可能なアプリケーションを作成する場合は、C または Java を使用する必要があります。
  3. 複雑なアプリケーションには構造化プログラミングが必要です。
  4. 会社の将来を賭けたビジネスに不可欠なプログラム。
  5. システムの完全性を確保し、侵入、クラッキング、または損傷から保護する必要がある場合など、セキュリティが重要な状況。
  6. プロジェクトは、相互接続されたサブコンポーネントで構成されています。
  7. 大規模なファイル活動が必要です。 (Bash はシリアル ファイルに行単位でしかアクセスできません。)
  8. 多次元配列には、ネイティブ サポートが必要です。
  9. キューやグラフなどのデータ構造が必要です。
  10. ビジュアルまたはグラフィカル ユーザー インターフェイスを作成または管理する必要がある。
  11. ハードウェアまたは外部周辺機器とのやり取りが必要です。
  12. I/O ポートまたはソケットが必要です。
  13. 組み込みライブラリまたは古いレガシー コードを使用する必要があります。
  14. クローズド ソースのプロプライエタリ アプリケーション (シェル スクリプトを使用すると、誰でもソース コードを参照できるようになります。)

スクリプトを終了する方法

コードをテストするスクリプトを作成し、コードが失敗した場合にスクリプトを終了する必要がある場合など、スクリプトで exit コマンドを使用できます。 スクリプトは、C プログラムのように exit コマンドで終了します。

exit コマンドは、プロセス間通信にも使用できます (つまり、exit コマンドに渡された引数は、スクリプトの親プロセスに返されます)。

すべてのコマンドは、成功または失敗のステータス (戻りステータスまたは終了コード) を生成します。 コマンドが成功すると 0 が返されます。 コマンドが失敗すると、一般にエラー コードとして理解されるゼロ以外の値が生成されます。

正常に完了すると、正常に動作する UNIX コマンド、プログラム、およびユーティリティのほとんどが 0 終了コードを返しますが、いくつかの例外もあります。

スクリプトの関数とスクリプト自体の両方が終了ステータスを返します。 終了ステータスは、関数またはスクリプトの最後のコマンドによって決定されます。

exit コマンドの構文は次のとおりです。

exit nn

exit nn コマンドをスクリプト内で使用して、シェルに nn 終了ステータスを提供できます (nn は 0 から 255 の範囲の整数でなければなりません)。 終了ステータスは、スクリプトがパラメータなしの終了で終了したときに、スクリプトで実行された最後のコマンドの終了ステータスです (終了の前)。

例:

#!/bin/bash

FIRST COMMAND
..
..
LAST COMMAND
# It will exit the script with the status of the last command.
exit

exitexit $?、または単にexitを省略しても、すべて同じ意味を持ちます: 最後のコマンドのステータスで終了します。 スクリプトが終了したら、コマンドecho $?を使用してステータスを確認できます。

特定の終了コードには予約済みの意味があり、ユーザーが定義するべきではありません。 そのようなコードとその意味を以下に示します。

終了コード 説明
1 すべての一般的なエラーをキャッチ
2 組み込みのシェル関数が誤用された場合
126 呼び出されたコマンドを実行できません
127 呼び出されたコマンドが見つかりません
128 無効な引数が渡されました
130 スクリプトは Ctrl+C キーボード キーを使用して終了します
255* 範囲外の終了ステータス
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

関連記事 - Bash Exit