功能更齐全!Unix shell Bash 5.0释出

常用的Unix shell Bash释出第5个主要版本,这个版本主要修复了Bash 4.4中几个明显的错误,同时也加入了一些新功能。Bash是一个完整的POSIX壳层规范实作,除了有交互式命令行编辑功能,还在基础架构上支持工作控制,并提供类似csh的功能等。Bash 5.0主要解决Bash 4.4的错误,是改变对nameref变量解析的方法,和一系列以模糊测试发现的潜在超出范围值内存错误。另外,Bash 5.0在不执行单词拆解以符合Posix标准解释的情况下,在不同的上下文中,$@和$*的扩充也有许多改变,而且还解决不少极端案例以增加Posix的一致性。

而本次最重要的功能更新,则是增加了新的壳层变量,BASH_ARGV0、EPOCHSECONDS和EPOCHREALTIME。而内建的History功能现在可以用来删除历史条目的范围,并且将负的参数当作历史列表末端的偏移量。Bash 5.0还增加了一个选项,允许局部变量继承前一个作用域中,具有相同名称的变量值。另外,还加入一个新的shell选项,启用后将允许shell只尝试扩展关联数组下标(Subscripts)一次,但官方表示,这个功能在数学表示式中使用仍会出现问题。Bash 5.0现在会默认启用globasciiranges的shell选项,用户可以在配置阶段将其设定为预设关闭。

官方提醒,Bash 4.4与Bash 5.0之间存在部分不兼容的更新,像是nameref变量解析方法的变更,代表着使用namerefs会出现不同的行为,尽管官方提到他们已经尽可能减少这种兼容性问题,但仍有部分无可避免。除此之外,现在于预设情况下,当启用扩充侦错模式的时候,则壳层才会在启动时配置BASH_ARGC和BASH_ARGV,官方表示,这是一个之前的设定疏忽,在传递大量参数时,会造成效能低落问题。官方建议使用者可以将Bash链结到已经安装的Readline函式库,而非使用lib/readline中的私有版本,因为只有Readline 8.0以及更新的版本,才能提供所有Bash 5.0需要的符号,使用早前的Readline函式库版本将无法正常运作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值