1、Ubuntu 93:read : Illegal option -e
2、Ubuntu :set Illegal option -o pipefail
其实这不是Ubuntu本身运行shell 有缺陷,其实Ubuntu的 shell 默认安装的是 dash,而不是 bash。dash 比 bash 更轻,更快。但 bash 却更常用。所以这不是Ubuntu的错,我们改下就可以啦。
运行这命令看下:
$ ls -al /bin/sh
果然是,
有以下方案改下:
1、我们改下让他默认是bash
$sudo dpkg-reconfigure dash
然后用键盘左右键选择 no 或者 否 ,回车并确认。
再次核实下,OK了。
2、直接修改 /bin/sh 链接文件,将其指定到 /bin/bash
$sudo ln -fs /bin/bash /bin/sh
3、还有一种解决方法是,在脚本文件中直接指定使用的 shell,而不是指定 sh:
例如使用 #!/bin/bash 或者 #!/bin/dash 而不是#!/bin/sh。
但这样将丧失脚本的通用性,使其在不具备所指定脚本的系统下不能被执行。