यह बहुत अच्छी तरह से मेरी ओर से मूर्खता हो सकती है। मैं अपनी बैश स्क्रिप्ट के भीतर हां / नहीं, सच्ची / गलत प्रतिक्रिया स्वीकार करना चाहता हूं:
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 ०
User passed in 0
Decline
./test.sh १
User passed in 1
Accept
./test.sh 2
User passed in 2
Invalid argument
./test.sh नहीं
User passed in No
Decline
अब तना हुआ। क्यों [[ "${OPTARG^^}" == "N" ]]किसी भी स्ट्रिंग के लिए सच लौट रहा है !?
./test.sh हाँ
User passed in Yes
Decline
./test.sh
User passed in ThisShouldNotMatch
Decline
यदि आप इसे उद्धृत करते हैं तो क्या होता है? OPTARG = "$ {ARGUMENT: 0: 1}"
—
mikeserv
कोई बात नहीं। गोल्डीलॉक्स सही है।
—
प्रातः