메뉴 항목이 선택될 때 외부 스크립트를 실행하는 도구 상자를 만들기 위해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
사용자의 선택은 yes OPTION
또는 no 입니다 RETVAL
.
변화:
case $RETVAL in
도착하다:
case "$OPTION" in
정의되지 않은 변수를 사용할 때 경고가 표시되도록 set -u
스크립트 상단에 이를 추가하는 것이 좋습니다 .bash
"$var"
대신 변수를 항상 인용하는 것도 좋습니다 $var
. 예외가 있지만 드문 경우입니다.