./abc.sh: line 28: [: !=: unary operator expected
时间: 2024-03-10 21:49:34 浏览: 123
这个错误通常是因为比较运算符周围的空格不正确导致的。在Shell中,比较运算符和操作数之间需要有空格,否则Shell会将它们视为一个字符串。请检查你的代码,确保在使用"!="运算符时,其前后都有空格。
例如,下面的代码会导致这个错误:
```
if [ "$a"!="1" ]; then
echo "a不等于1"
else
echo "a等于1"
fi
```
应该修改为:
```
if [ "$a" != "1" ]; then
echo "a不等于1"
else
echo "a等于1"
fi
```
注意到"!="前后都有空格。
相关问题
sum: =./test1.sh: No such file or directory ./test1.sh: line 8: [: -gt: unary operator expected
这个错误说明在运行脚本时,找不到名为 test1.sh 的文件或者该文件没有执行权限。请确认该文件是否存在于当前工作目录下,并且是否已经通过 chmod 命令赋予了可执行权限。此外,错误信息还提示第 8 行的条件判断中出现了语法错误,可能是因为变量没有被正确地赋值。可以检查一下该变量在前面是否被正确地初始化。
iu@liu-desktop:~/桌面$ bash 2.sh 2.sh: line 7: [: ==: unary operator expected 2.sh: line 9: [: ==: unary operator expected
这个错误消息表明,在你的脚本中 if 语句中的条件表达式没有正确地运行。具体来说,在这个脚本中,第7行和第9行的条件表达式都需要改正。
请尝试将第7行和第9行的条件表达式改为:
```
if [ "$1" = "r" ]; then
...
fi
if [ "$2" = "w" ]; then
...
fi
```
需要注意的是,条件表达式中等号两侧需要有空格,而且变量名需要用双引号括起来,否则可能会因为空格或特殊字符导致语法错误。
阅读全文