Bash包已从 bash-3.2-32 更新为 bash-4.1.2-15.el6_5.1.x86_64 。升级后,正则表达式匹配条件运算符=〜可以正则表达式匹配以停止工作。如何添加
shopt -s compat31
所有shell脚本中的命令?我不想一个接一个地在所有脚本中添加此命令。
我已将上述命令添加到.bashrc中,但在shell脚本上没有反映兼容性。 命令结果:
compat31 is off in script.
[root@localhost log]# sh abc.sh
compat31 off
Compat31 is on at command prompt screen.
[root@localhost log]# shopt |grep compat31
compat31 on
[root@localhost log]#
答案 0 :(得分:1)
一些观察结果:
=~
行为的变化只是将引用的右手字符串视为文字字符串匹配而不是正则表达式。你只需要从中删除任何引号,使你的旧代码与3.2alpha一起使用。答案 1 :(得分:1)
一种选择是使用
运行脚本bash -O compat31 oldscript.bash
而不是编辑脚本本身。