シェルスクリプトで記述したスクリプトの信頼性を保つためには、エラー処理が非常に重要です。
シェルスクリプトでエラーを適切に処理するための一つの手法が「set -e」コマンドです。
この記事では、「set -e」の機能とその使用方法について詳しく説明します。
set -eコマンドは、シェルスクリプト内でコマンドが失敗した場合に、スクリプトの実行を直ちに停止させるためのオプションです。
シェルスクリプトのデフォルトの動作では、あるコマンドが失敗してもスクリプトの実行は続行されることがありますが、set -eを設定することで、失敗した時点でスクリプトが停止します。
具体的には、set -eを有効にすると、以下の事項が発生した場合にスクリプトが停止します。
「set -e」をシェルスクリプトに追加するのは非常に簡単です。スクリプトの最初に「set -e」を書くだけで、そのスクリプト全体に適用されます。以下にその例を示します。
#!/bin/bash
set -e
echo "スクリプトの開始"
# 存在しないディレクトリに移動しようとする
cd /nonexistent_directory
# この行は実行されない
echo "このメッセージは表示されません"
このスクリプトでは、cd /nonexistent_directory が失敗するため、set -e によってスクリプトの実行が停止し、次の echoコマンドは実行されません。
set -eを使用する際に、特定のコマンドが失敗してもスクリプトの実行を続行したい場合があります。このような場合には、コマンドの直後に”|| true”を追加することで、エラーを無視して続行させることができます。
以下のスクリプトでは、cd /nonexistent_directoryが失敗しても || true によってスクリプトの実行が続行されます。
#!/bin/bash
set -e
echo "スクリプトの開始"
# 存在しないディレクトリに移動しようとする
cd /nonexistent_directory || true
# この行は実行されない
echo "このメッセージは表示されます"
set -eコマンドは、シェルスクリプトのエラー処理を強化し、スクリプトの信頼性を高める強力なツールです。エラーが発生した際にスクリプトを自動的に停止させることで、問題の早期発見と修正が可能になります。
set -eをうまく活用して、より堅牢なスクリプトを作成してください。