我有两个变量
var=""
var1=abcd
Run Code Online (Sandbox Code Playgroud)
这是我的shell脚本代码
if [ $var == $var1 ]; then
do something
else
do something
fi
Run Code Online (Sandbox Code Playgroud)
如果我运行此代码,它将提示警告
[: ==: unary operator expected
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
Kei*_*son 87
由于值为$var空字符串,因此:
if [ $var == $var1 ]; then
Run Code Online (Sandbox Code Playgroud)
扩展到这个:
if [ == abcd ]; then
Run Code Online (Sandbox Code Playgroud)
这是一个语法错误.
你需要引用参数:
if [ "$var" == "$var1" ]; then
Run Code Online (Sandbox Code Playgroud)
你也可以使用=而不是==; 这是原始语法,而且更加便携.
如果您正在使用bash,则可以使用[[不需要引号的语法:
if [[ $var = $var1 ]]; then
Run Code Online (Sandbox Code Playgroud)
即使这样,引用变量引用并添加引号也没什么坏处:
if [[ "$var" = "$var1" ]]; then
Run Code Online (Sandbox Code Playgroud)
可能会为将来的读者节省一些时间,试图记住[[...... 是否]]需要它们.
| 归档时间: |
|
| 查看次数: |
118617 次 |
| 最近记录: |