Ubuntu 运行shell脚本存在的"Bug"

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。
但这样将丧失脚本的通用性,使其在不具备所指定脚本的系统下不能被执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值