ホイップテールを使用して、メニュー項目が選択されたときに外部スクリプトを実行するツールボックスを作成したいと思います。
私は次のコードを持っています
#!/bin/bash
OPTION=$(whiptail --title "IT ToolBox v0.1" --menu "Choose your option" 15 60 4 \
"1" "Get users dropped from Active Directory" \
"2" "Work in progress" \
"3" "Work in progress" \
"4" "Work in progress" 3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo "Your chosen option:" $OPTION
else
echo "You chose Cancel."
fi
case $RETVAL in
1) echo "Get users dropped from Active Directory"
2) echo "Invalid option. Quitting";;
3) echo "Invalid option. Quitting";;
4) echo "Invalid option. Quitting";;
*) echo "Invalid option. Quitting";;
esac
選択したときにファイルgudfad.shを実行するようにスクリプトに指示するにはどうすればよいですか?私の理解では、コマンドはケース領域に追加されます-例:
case $RETVAL in
1) echo "Get users dropped from Active Directory"
gudfad.sh;;
2) echo "Invalid option. Quitting";;
3) echo "Invalid option. Quitting";;
4) echo "Invalid option. Quitting";;
*) echo "Invalid option. Quitting";;
esac
ただし、これを実行してオプション1を選択すると、次のメッセージが表示されます。
Your chosen option: 1
Invalid option. Quitting
ユーザーの選択は、OPTION
ではなくRETVAL
にあります。
変化する:
case $RETVAL in
に:
case "$OPTION" in
bash
スクリプトの先頭にset -u
を追加すると、未定義の変数を使用したときに警告が表示されるようになります。
変数を常に引用することもお勧めします:"$var"
ではなく$var
。例外はありますが、まれです。