
メニュー項目が選択されたときに外部スクリプトを実行するツールボックスを作成するためにhiptailを使用したいと思います。
次のコードがあります
#!/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
答え1
ユーザーの選択はyesOPTION
またはnoですRETVAL
。
変更:
case $RETVAL in
到着する:
case "$OPTION" in
未定義の変数を使用するときに警告が表示されるように、スクリプトの上部に追加することをお勧めset -u
します。bash
"$var"
代わりに変数を常に引用することをお勧めします$var
。例外がありますが、まれなケースです。