이것은 매우 어리석은 일입니다. Bash 스크립트 내에서 예 / 아니요, True / False 응답을 수락하고 싶습니다.
test.sh
#!/bin/bash
ARGUMENT=$1
echo User passed in $ARGUMENT
OPTARG=${ARGUMENT:0:1}
if [[ "$OPTARG" -eq 0 ]] || [[ "${OPTARG^^}" == "N" ]]; then
echo Decline
elif [[ "$OPTARG" -eq 1 ]] || [[ "${OPTARG^^}" == "Y" ]]; then
echo Accept
else
echo Invalid argument
fi
다음은 몇 가지 샘플 결과입니다.
./test.sh 0
User passed in 0
Decline
./test.sh 1
User passed in 1
Accept
./test.sh 2
User passed in 2
Invalid argument
./test.sh 아니오
User passed in No
Decline
이제 스 텀퍼. [[ "${OPTARG^^}" == "N" ]]문자열에 대해 왜 true를 반환 합니까 ?
./test.sh 예
User passed in Yes
Decline
./test.sh ThisShouldNotMatch
User passed in ThisShouldNotMatch
Decline
이것을 인용하면 어떻게 되나요? OPTARG = "$ {ARGUMENT : 0 : 1}"
—
mikeserv
신경 쓰지 마. 골디 락이 맞습니다.
—
mikeserv