[: ==: unary operator expected
Shell 脚本报错:“line 10: [: =: unary operator expected”。根据提示信息找到报错的程序是:
1 | if [ $OPERATION == "scp" ]; then |
报错原因是变量 OPERATION 的值为空,那么程序就变成了:
1 | if [ == "scp" ]; then |
显然 [ 和 “scp” 不相等并且缺少了 [ 符号,所以报了这样的错误。检查程序发现是 OPERATION 在声明的时候写错导致的。这样的错误还是很隐蔽的,所以为了增强程序的健壮性可以用下面的写法:
1 | if [ "${OPERATION}x" == "scpx" ]; then |