Whiptail을 계속하려면 세 개의 숫자가 필요합니다.

Whiptail을 계속하려면 세 개의 숫자가 필요합니다.

사용자에게 입력을 요청하는 휩테일 양식이 있습니다. 계속하기 전에 누군가가 세 개의 숫자를 입력하도록 강제하는 방법이 있습니까?

NUMBERS=$(whiptail --inputbox "Enter three numbers only" 8 78 000
--title "Three Numbers" 3>&1 1>&2 2>&3)

exitstatus=$? if [ $exitstatus = 0 ]; then
    echo "User selected Ok and entered " $NUMBERS else
    echo "User selected Cancel." fi

echo "(Exit status was $exitstatus)"

답변1

사용자가 입력한 내용을 확인하고 whiptail유효한 값을 입력할 때까지 반복할 수 있습니다.

#!/usr/bin/env bash

## I included the 000 in the regex below since
## you are populating your field with it. I assume you
## want 000 + 3 numbers.
until [[ $numbers =~ ^000[0-9]{3}$ ]]; do
        numbers=$(whiptail --inputbox "Enter three numbers only" 8 78 000 --title "Three Numbers" 3>&1 1>&2 2>&3)
        exitstatus=$?
        if [ $exitstatus = 0 ]; then
                echo "User selected Ok and entered " $numbers
        else
                echo "User selected Cancel."
                break;
        fi
done

echo "(Exit status was $exitstatus)"

나 역시 NUMBERS로 변경될 예정이니 참고하세요 numbers. 일반적으로 bash 스크립트에서는 대문자 변수 이름을 사용하지 마십시오. 전역 환경 변수는 모두 대문자이므로 혼동을 일으킬 수 있습니다.

관련 정보