我觉得这很愚蠢。我想在我的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
现在的树桩。为什么[[ "${OPTARG^^}" == "N" ]]对任何字符串都返回true !?
./test.sh是
User passed in Yes
Decline
./test.sh ThisShouldNotMatch
User passed in ThisShouldNotMatch
Decline
如果您引用此内容会怎样?OPTARG =“ $ {ARGUMENT:0:1}”
—
mikeserv
没关系。金发姑娘是对的。
—
mikeserv