解决Ubuntu下运行shell文件报错 “[:XXXX: unexpected operator”的问题
问题描述:
在Ubuntu下运行shell文件,文件中有判断语句[ x == xxxx ]时,运行结果会报错,如下图:
程序中写了判断语句[ x == xxxx ]如下图:
分析原因:
因为Ubuntu默认的shell是连接到dash的,而我们在文件开始的时候是指定文件使用bash,如下图:
又因为dash和bash的不兼容所以造成了系统运行.sh文件的时候出错了。
解决方法:
①输入 sudo dpkg-reconfigure dash 修改Ubuntu解释器默认连接到bash,如下图:
②通过键盘上的方向键来选择光标移动到 No,然后按下 enter 键确认选择。
③系统提示移除了dash相关选项,添加了bash相关选项。
④重新运行程序,不再报错,程序运行结果正确,问题解决。