ダイアログを使用してユーザーに質問を促すスクリプトを作成しています。手順の 1 つは、コマンドを実行して情報を生成することです。失敗した場合に備えてifステートメントがあります。ユーザーが再実行できるように失敗した場合に備えて、やりたいことです。それを行う方法について少し迷った。
スクリプト自体
#!/bin/bash
#Generating UID
UID_GREP=${UID_GREP=dialog}
$UID_GREP --title "Appliance Imaging Script" --clear \
--yesno "Begin Generate UID for Appliance:" 10 30
case $? in
0)
#uid generate script
/usr/share/bin/create >/tmp/appliance_run.log 2>&1
;;
1)
clear
echo "exiting"
exit;;
255)
clear
echo "ESC Pressed... Exiting"
exit;;
esac
#if Generation of UID fails
if [ $? != 0 ] ; then
UID_FAIL=${UID_FAIL=dialog}
$UID_FAIL --title "UID Genenration failed" --clear \
--yesno "UID failed to genenerate, would you like to try again" 10 30
case $? in
0)
#loopback to $UID_GREP
;;
1)
clear
echo "exiting"
exit;;
255)
clear
echo "ESC Pressed... Exiting"
exit;;
esac
fi
つまり、基本的に、「#loopback to $UID_GREP」と表示されている場合は、[はい] を選択して UID_GREP ダイアログ画面にループバックするようにします。
ありがとうございました。