有人可以解释为什么这个简单的bash脚本:
#!/bin/bash
myvar="Hello"
if [[ -z "$myvar" ]]; then
# echo "It's an unfilled string"
else
echo "It's a filled string!"
fi
Run Code Online (Sandbox Code Playgroud)
给了我错误
./testscript: line 7: syntax error near unexpected token `else'
./testscript: line 7: `else'
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除回声线上的注释,脚本运行正常.显然,在空if语句中注释行是一个问题.考虑到这一点,我该如何修复它以便我可以使用带有注释的空if语句?
then和之间没有语句else,因此这是语法错误.如果你真的想在if分支中什么都不做,那么你可以使用:(或true)作为占位符:
#!/bin/bash
myvar="Hello"
if [[ -z "$myvar" ]]; then
# echo "It's an unfilled string"
:
else
echo "It's a filled string!"
fi
Run Code Online (Sandbox Code Playgroud)
更好的是,扭转你的逻辑:
#!/bin/bash
myvar="Hello"
if [[ -n "$myvar" ]]; then
echo "It's a filled string!"
fi
Run Code Online (Sandbox Code Playgroud)