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