꼬리 휘핑 및 외부 스크립트 호출

꼬리 휘핑 및 외부 스크립트 호출

메뉴 항목이 선택될 때 외부 스크립트를 실행하는 도구 상자를 만들기 위해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. 예외가 있지만 드문 경우입니다.

관련 정보