逆引きシェルスクリプト/シェルスクリプト内でコマンドがエラーの場合に即停止する方法
の編集
Top
/
逆引きシェルスクリプト
/
シェルスクリプト内でコマンドがエラーの場合に即停止する方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * シェルスクリプト内でコマンドがエラーの場合に即停止する方法 [#qc264cfe] 通常、シェルスクリプト内で使用しているコマンドでエラーが発生した場合、~ 次の行のスクリプトが実行されます。~ 本資料は、スクリプト内で使用しているコマンドがエラーになった場合、~ 即シェルスクリプトが停止する方法を以下に記します。~ 尚、使用したシェルはbashになります。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * コマンドがエラーの場合、停止する方法 [#g90d5369] シェルスクリプトの最初の行のシェルに以下のように-eオプションを追加します。 #!/bin/bash -e これで、シェルスクリプト内でコマンドがエラーの場合、スクリプトが停止します。~ 注意点としてifやwhileなどの判定にコマンドの戻り値を判定している場合は、~ スクリプトは停止しません。 * 実際にbash -e を試してみる [#f9f93969] 以下、2つのサンプルスクリプトがあります。 :non-opts.sh|-eオプションなし :e-opts.sh|-eオプションありでbashを起動 ** -eオプションなし(non-opts.sh) [#ab47acce] -サンプルスクリプト #!/bin/bash echo "start" date foo echo "end" -サンプルスクリプト実行結果 sakura@hp-mini:~$ chmod +x non-opts.sh sakura@hp-mini:~$ ./non-opts.sh start date: `foo' は無効な日付です end dateコマンドの引数エラーによりエラーが出力されていますが、~ endが表示されている通り最後までスクリプトが動作しているのが確認できます。 ** -eオプションなし(e-opts.sh) [#kba9a090] -サンプルスクリプト #!/bin/bash -e echo "start" date foo echo "end" -サンプルスクリプト実行結果 sakura@hp-mini:~$ chmod +x e-opts.sh sakura@hp-mini:~$ ./e-opts.sh start date: `foo' は無効な日付です dateコマンドが引数エラーによりエラー出力されて、本スクリプトが停止しているのが確認できます。~ (endが表示されていない。) 以上、bashを使用してシェルスクリプト内でエラーが発生した場合、~ スクリプトを停止する方法でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#navi(../) * シェルスクリプト内でコマンドがエラーの場合に即停止する方法 [#qc264cfe] 通常、シェルスクリプト内で使用しているコマンドでエラーが発生した場合、~ 次の行のスクリプトが実行されます。~ 本資料は、スクリプト内で使用しているコマンドがエラーになった場合、~ 即シェルスクリプトが停止する方法を以下に記します。~ 尚、使用したシェルはbashになります。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * コマンドがエラーの場合、停止する方法 [#g90d5369] シェルスクリプトの最初の行のシェルに以下のように-eオプションを追加します。 #!/bin/bash -e これで、シェルスクリプト内でコマンドがエラーの場合、スクリプトが停止します。~ 注意点としてifやwhileなどの判定にコマンドの戻り値を判定している場合は、~ スクリプトは停止しません。 * 実際にbash -e を試してみる [#f9f93969] 以下、2つのサンプルスクリプトがあります。 :non-opts.sh|-eオプションなし :e-opts.sh|-eオプションありでbashを起動 ** -eオプションなし(non-opts.sh) [#ab47acce] -サンプルスクリプト #!/bin/bash echo "start" date foo echo "end" -サンプルスクリプト実行結果 sakura@hp-mini:~$ chmod +x non-opts.sh sakura@hp-mini:~$ ./non-opts.sh start date: `foo' は無効な日付です end dateコマンドの引数エラーによりエラーが出力されていますが、~ endが表示されている通り最後までスクリプトが動作しているのが確認できます。 ** -eオプションなし(e-opts.sh) [#kba9a090] -サンプルスクリプト #!/bin/bash -e echo "start" date foo echo "end" -サンプルスクリプト実行結果 sakura@hp-mini:~$ chmod +x e-opts.sh sakura@hp-mini:~$ ./e-opts.sh start date: `foo' は無効な日付です dateコマンドが引数エラーによりエラー出力されて、本スクリプトが停止しているのが確認できます。~ (endが表示されていない。) 以上、bashを使用してシェルスクリプト内でエラーが発生した場合、~ スクリプトを停止する方法でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する
添付ファイル:
1.zip
[
詳細
]