bash 版本中带有多个参数的 cd 的不同行为

Rui*_*iro 14 bash cd-command

在这里发布一些令我感到困惑的东西;将应用服务器从 Jessie 升级到 Stretch 破坏了bash脚本。

经过调查,我们将其范围缩小到cd命令行为的改变。我不是在这里讨论脚本正在做什么是一个好主意,或者它是否可以改进,我只是专注于行为改变/改变心态的意识。

杰西

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*
Run Code Online (Sandbox Code Playgroud)

cd 工作和 cds 到第一个目录;实际上 *-run 是指向同一目录的符号链接。

拉紧

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*
bash: cd: too many arguments
Run Code Online (Sandbox Code Playgroud)

bash 在 Jessie 中为 4.3.30(1),在 Stretch 中为 4.4.12(1)。

为什么 Jessie 和 Stretch 之间的行为会发生变化?

cho*_*oba 23

请参阅bash 4.4发布说明,特别是

QQ。config-top.h 中有一个可设置的新选项,它使多个目录参数cd成为致命错误。

顺便说一句,我不知道。我只是在谷歌上搜索“bash cd number 4.4”。

  • 有趣的。一件好事恕我直言,因为它避免了当一个人有一个逃逸的错误时默默地丢弃额外的参数。 (8认同)