もっと詳しく

トラップ コマンドを使用して、スクリプトの実行中にシステムによってエラー シグナル システムをキャッチできます。 次に、シェル コマンドを実行するか、関数を呼び出すことができます。 このようにして、bash スクリプトで発生したエラーに対してカスタム スクリプト コードを実行できます。

これは、部分的な変更を元に戻したり、データベース接続を閉じたり、関係者へのメール ステータスなどを行うのに役立ちます。次のような ERR シグナルで trap コマンドを使用できます。

trap 'on_error_function' ERR

シェル スクリプトでエラーが生成されると、シェル スクリプトの「on_error_function」という名前の関数が実行されます。 関数を呼び出す代わりに、コマンドを実行することもできます。

例: Bash でエラー時に関数を実行する

例で理解しましょう。 サンプル シェル スクリプトを作成し、任意の名前の関数を作成します。 次に、 trap の機能を持つコマンド エラー 信号。 次に、エラーを生成する簡単なコマンドを追加します。

上記のスクリプトを実行すると、以下の結果が表示されます。

Output:

ls: cannot access '/home/tecadmin/dir_not_exists': No such file or directory Some error occurred

エラーがトラップされ、関数が on_error() bash スクリプトによって実行されます。

例: Bash でエラー時にコマンドを実行する

もう 1 つの例を見てみましょう。 ここでは、シェルスクリプトでエラーが発生した場合にコマンドを実行します。

上記のスクリプトでは、別の関数を定義していません。 エラー時に echo コマンドを実行するだけです。 上記のスクリプトを実行し、結果を確認します。

Output:

ls: cannot access '/home/tecadmin/dir_not_exists': No such file or directory Ohhh no!

例: エラーが発生した行番号を取得する

スクリプト名とともに、bash スクリプトでエラーが発生した行番号も確認できます。 これを行うには、bash に組み込まれている「caller」を使用します。

上記のスクリプトを実行し、結果を確認します。 エラーが発生したスクリプト名と行番号が表示されます。

Output:

ls: cannot access '/home/tecadmin/dir_not_exists': No such file or directory Error found in: 9 ./script.sh

この記事を読んでいただきありがとうございます。 願わくば、このチュートリアルが、エラーをキャッチして何らかのアクションを実行することにより、シェル スクリプトをより適切に作成するのに役立つことを願っています。

The post Bash スクリプトでコマンドまたは関数をエラー時に実行する方法 – TecAdmin appeared first on Gamingsym Japan.