Bashバージョンで複数の引数を使用するCDの異なる動作

Bashバージョンで複数の引数を使用するCDの異なる動作

ここに混乱しているコンテンツを公開すると、アプリケーションサーバーをJessieからStretchにアップグレードするとbashスクリプトが破損します。

調査の後、我々は命令の動作の変化で範囲を狭めましたcd。私はスクリプトが何をするのが良いアイデアか改善できるかを議論するためにここにいるのではなく、行動の変化/変化した考え方の認識に焦点を当てています。

提示

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*

cdは動作し、最初のディレクトリのcdsです。実際、* -runは同じディレクトリへのシンボリックリンクです。

緊張

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*
bash: cd: too many arguments

bashJessieでは4.3.30(1)、Stretchでは4.4.12(1)です。

JessieとStretchの間の行動がなぜ変わったのですか?

答え1

よりBash 4.4 リリースノート、特に

QQ。 config-top.hには、複数のcdディレクトリパラメータに対して致命的なエラーを発生させる新しい設定可能なオプションがあります。

ところで、私は知らない。 「bash CD番号4.4」を検索しました。

関連情報