系统极客一直在努力
专注操作系统及软件使用技能

Bash 5.3 发布:迎来一系列重大新特性

Linux

Bash 5.3 正式发布!这次更新除了常规的改进、修复和兼容性调整,还带来了一些非常重磅的新功能。

全新的命令替换形式

这次更新最亮眼的,是一种全新的命令替换形式。它能让命令直接在当前的 Shell 执行上下文中运行。这种新形式包含两种变体:

  • ${ command; }:无需创建子进程 (fork),就能捕获命令的标准输出。
  • ${| command; }:直接在当前 Shell 中运行命令,并将结果存入REPLY这个 Shell 变量中。

自动补全

Bash 5.3 在输入和自动补全方面也得到了显著增强:

  • 新增的GLOBSORT变量能更精细地控制路径名补全结果的排序方式。你可以按name (名称)、size (大小)、blocks (块)、mtime (修改时间)、atime (访问时间)、ctime (状态变更时间)、numeric (数值) 或none (不排序) 等标准,自由选择升序或降序排列。
  • source命令新增了-p PATH 标志,允许你指定查找文件的路径。
  • compgen内建命令现在会把结果存入一个 Shell 变量,而不是直接打印到屏幕。同时,read内建命令新增的-E选项利用了 Readline 的补全能力。即使在读取输入时,也能享受 Tab 键自动补全的便利。

Readline 底层库

Readline 是 Bash 实现命令编辑、历史记录和 Tab 补全等功能的底层库,这次它也获得了新技能:

  • 新增支持不区分大小写的搜索选项。
  • 新增一个命令,可以直接执行指定的 Readline 命令。
  • 新增一个命令,能导出所有可能的单词补全项(以特定格式),方便其他进程使用。

脚本处理和错误报告

Bash 5.3 在脚本处理和错误报告方面也有多项提升。比如:

  • [[命令里的正则表达式编译失败时,现在会打印出错误信息了。
  • 在处理#!脚本时,系统会先检查文件的前两行,然后再判断它是不是二进制文件。

要想逐一了解 Bash 5.3 的所有新增和改进细节,请查阅完整的变更说明

赞(0)
分享到

评论 抢沙发