Linuxのシェルスクリプトは、実行後に終了ステータスを返します。この終了ステータスは、スクリプトが正常に終了したか、何らかのエラーが発生したかを示す重要な情報源です。この記事では、シェルスクリプトの終了ステータスの取得方法とその応用について詳しく解説します。
目次
シェルスクリプトの終了ステータスとは
シェルスクリプトやコマンドが実行された後、シェルは常に終了ステータスを返します。これは、0から255の整数で、0は正常終了を示し、それ以外の値はエラーを示すことが一般的です。
終了ステータスの取得方法
シェルスクリプトやコマンドの終了ステータスは、$?変数を使用して取得できます。
echo "Hello, World!"
echo $? # 前のコマンドの終了ステータスを表示
上記のスクリプトは、”Hello, World!”を表示した後、そのコマンドの終了ステータスを表示します。正常に実行されると、0が表示されます。
応用例
1. 終了ステータスを利用したエラーハンドリング
シェルスクリプトの実行中にエラーが発生した場合に、特定の処理を行うことができます。
#!/bin/bash
command_that_might_fail
if [ $? -ne 0 ]; then
echo "エラーが発生しました"
exit 1
fi
2. 複数のコマンドの終了ステータスをチェック
複数のコマンドを実行した場合、それぞれの終了ステータスをチェックして、全てのコマンドが正常に終了したか確認することができます。
#!/bin/bash
command1
status1=$?
command2
status2=$?
if [ $status1 -ne 0 ] || [ $status2 -ne 0 ]; then
echo "1つまたは複数のコマンドでエラーが発生しました"
exit 1
fi
3. 終了ステータスに基づいたログの記録
スクリプトの終了ステータスに基づいて、ログファイルに情報を記録することができます。
#!/bin/bash
./my_script.sh
if [ $? -eq 0 ]; then
echo "正常に終了しました" >> /var/log/my_script.log
else
echo "エラーが発生しました" >> /var/log/my_script.log
fi
4. サーバーモニタリングに終了ステータスを使用
サーバーのモニタリングツールを利用して、スクリプトやコマンドの終了ステータスに基づいてアラートを送信することができます。
#!/bin/bash
ping -c 1 example.com
if [ $? -ne 0 ]; then
send_alert "example.comへのpingが失敗しました"
fi
まとめ
Linuxのシェルスクリプトの終了ステータスは、スクリプトの実行結果を知る上で非常に役立つ情報です。この終了ステータスを適切に取得し、エラーハンドリングやモニタリングなどのタスクに応用することで、システムの運用をより安全かつ効率的に行うことができます。
コメント