สิ่งนี้เป็นอย่างดีอาจจะโง่ในส่วนของฉัน ฉันต้องการยอมรับว่าใช่ / ไม่ใช่คำตอบจริง / เท็จภายในสคริปต์ Bash ของฉัน:
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
ตอนนี้ stumper ทำไม[[ "${OPTARG^^}" == "N" ]]คืนเป็นจริงสำหรับสตริงใด ๆ !
./test.sh ใช่
User passed in Yes
Decline
./test.sh ThisShouldNotMatch
User passed in ThisShouldNotMatch
Decline
จะเกิดอะไรขึ้นถ้าคุณเสนอราคานี้? OPTARG = "$ {ARGUMENT: 0: 1}"
—
mikeserv
ไม่เป็นไร. Goldilocks ถูกต้อง
—
mikeserv