问题:Ubuntu系统的默认shell比较字符串报错
系统版本如下:
从 /etc/issue 文件中查看系统版本:
1 | $ cat /etc/issue |
问题复现
创建一个测试文件 test.sh ,其代码如下:
1 |
|
使用 sh 命令执行会报错。
1 | $ sh test.sh prod |
原因
Debian和Ubuntu 系统中,默认的 sh 命令指向的是 dash
命令,这个dash的语法和 bash 很不同。
1 | $ ls -al /bin/sh |
解决办法:
(1) 修改命令,将 Ubuntu 的 sh 的默认 dash 改成 bash。或者执行的时候指明是 bash 命令,不用 sh 命令。
(2) 修改代码,改成严格的 dash 代码。