我有这个代码
STATUS=`echo "test"`
if [ $STATUS == "test" ]; then
exit 0
fi
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一切,但我无法做到这一点。
我试过
"$STATUS" == "test"
eval $STATUS == "test"
${STATUS[@]} == "test"
Run Code Online (Sandbox Code Playgroud)
唯一有效的是
$STATUS == \"test\"
Run Code Online (Sandbox Code Playgroud)
问题中的代码有效,这意味着它将执行该exit 0语句。
您的
STATUS=`echo "test"`
Run Code Online (Sandbox Code Playgroud)
是相同的
STATUS="test"
Run Code Online (Sandbox Code Playgroud)
和(在这种情况下)作为
STATUS=test
Run Code Online (Sandbox Code Playgroud)
即变量STATUS被赋值test为值(值中没有双引号)。
要针对该值进行测试test,请执行
if [ "$STATUS" = "test" ]
Run Code Online (Sandbox Code Playgroud)
或者
if [[ $STATUS == "test" ]]
Run Code Online (Sandbox Code Playgroud)
如果STATUS具有值"test",如
STATUS='"test"'
Run Code Online (Sandbox Code Playgroud)
然后在比较中使用该字符串:
if [ "$STATUS" = '"test"' ]
Run Code Online (Sandbox Code Playgroud)
或者
if [[ $STATUS == '"test"' ]]
Run Code Online (Sandbox Code Playgroud)
也可以看看: