Unterschiedliches Verhalten von CDs mit mehreren Argumenten in Bash-Releases

14

Hier etwas zu posten, das mich verwirrt; Beim Upgrade eines Anwendungsservers von Jessie auf Stretch wurde ein bashSkript abgebrochen .

Bei der Untersuchung haben wir es auf eine Verhaltensänderung des cdBefehls beschränkt. Ich diskutiere hier nicht, ob das Skript eine gute Idee ist oder ob es verbessert werden könnte. Ich konzentriere mich nur auf eine Verhaltensänderung / Bewusstsein für Veränderungen.

Jessie

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

cd funktioniert und cds ins erste verzeichnis; Tatsächlich ist * -run ein symbolischer Link zum selben Verzeichnis.

Strecken

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

bash ist 4.3.30 (1) in Jessie und 4.4.12 (1) in Stretch.

Warum veränderte sich das Verhalten zwischen Jessie und Stretch?

Rui F Ribeiro
quelle
2
Außerdem: askubuntu.com/q/905832/158442
muru

Antworten:

23

Siehe die Relase Notes bash 4.4 , vor allem

qq. In config-top.h kann eine neue Option festgelegt werden, die mehrere Verzeichnisargumente zu cdeinem schwerwiegenden Fehler macht.

Übrigens, ich wusste es nicht. Ich habe gerade nach "bash cd number 4.4" gegoogelt.

Choroba
quelle
8
Interessant. Ein gutes Ding imho, wie es vermeidet, zusätzliche Argumente stillschweigend zu verwerfen, wenn man einen entkommenden Fehler hat.
Spectras
@spectras Interessanter Kommentar, obwohl ich vermutete, dass dies Auswirkungen auf die Sicherheit haben könnte, war nicht von diesem Standpunkt aus zu sehen.
Rui F Ribeiro