问题:
之前使用==进行字符串比较,使用[[]]进行条件判断时,都没有什么问题。今天自己在虚拟机上却总是报如下错误:
使用==进行字符串比较报错unexpected operator:
使用[[]]进行条件判断时报错not found:
经过问题排查,写法并没有问题。改变脚本首行的命令解释器也还是没有作用。最终确定是由于ubuntu默认使用的shell是dash的原因,dash中默认的字符串比较符号是=,所以使用=正常,而==报错。于是将其设置改为常用的bash。
解决方法:
sudo dpkg-reconfigure dash
下面的选项选NO
更改配置以后,会默认使用bash进行命令解释。
重新运行脚本,不再报错: