3.8.5 adshechoコマンドまたはadshreadコマンドがエラー終了した場合の対処
adshechoコマンドまたはadshreadコマンドがエラー終了した場合でも,再実行によって成功する場合があります。再実行する場合は次の例を参考に,adshechoコマンドまたはadshreadコマンドを再実行するジョブ定義スクリプトを作成してください。
#! /opt/jp1as/bin/adshexec ### #adshreadコマンドを実行する関数 #引数 :応答要求メッセージ #終了コード:0 (正常終了) # 1 (リトライ可能なエラーで終了) # 2 (リトライ不可能なエラーで終了) ### func_adshread() { adshread ans "$1" case "$?" in # 正常終了 0 ) return 0 ;; # リトライ可能なエラーで終了した場合 3 | 4 | 6 | 8 ) return 1 ;; # 上記以外のエラーで終了 * ) return 2 ;; esac } ### ### スクリプトの本体 ### # # ジョブとして実行する処理を記述 # ### ### オペレータの応答を待って処理を続行する ### while : do #adshreadコマンドを実行する関数を呼び出す。 func_adshread "処理を続行しますか?(Y/N)【ホスト名:$HOSTNAME, スクリプト名:$0】" if [ $? = 0 ]; then #adshreadコマンドが正常に終了した break #ループを抜ける elif [ $? = 1 ] ; then #adshreadコマンドがリトライ可能なエラーで終了した continue #adshreadコマンドを再実行する else #adshreadコマンドがリトライ可能なエラー以外で終了した echo "adshreadコマンドがエラー終了しました。" exit 1 #スクリプトを終了する fi done ### ### adshreadが受け取った応答に応じて処理を行う ### if [ "$ans" = "Y" ] ; then adshecho "「Y」が入力されました。処理を続行します。" elif [ "$ans" = "N" ] ; then adshecho "「N」が入力されました。処理を終了します。" exit 1 #スクリプトを終了する else adshecho "指定以外の応答が入力されました。処理を終了します。" exit 1 #スクリプトを終了する fi