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。
但這樣將喪失腳本的通用性,使其在不具備所指定腳本的系統下不能被執行。