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

2023-11-01 14:38

本文主要是介绍功能更齐全!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函式库版本将无法正常运作。

这篇关于功能更齐全!Unix shell Bash 5.0释出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/323680

相关文章

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t