Comportement différent de cd avec plusieurs arguments dans les versions bash

14

L'afficher ici quelque chose qui me laisse perplexe; la mise à niveau d'un serveur d'applications de Jessie vers Stretch a cassé un bashscript.

Après enquête, nous l'avons réduit à un changement de comportement de la cdcommande. Je ne discute pas ici si ce que fait le script est une bonne idée, ou s'il pourrait être amélioré, je me concentre simplement sur un changement de comportement / une prise de conscience des changements de mentalité.

Jessie

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

cd fonctionne et cds dans le premier répertoire; en fait * -run est un lien symbolique vers le même répertoire.

Étendue

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

bash est 4.3.30 (1) dans Jessie, et 4.4.12 (1) dans Stretch.

Pourquoi le changement de comportement entre Jessie et Stretch?

Rui F Ribeiro
la source

Réponses:

23

Voir le notes de relâchement de bash 4.4 , en particulier

qq. Il y a une nouvelle option configurable dans config-top.h qui fait plusieurs arguments de répertoire pourcd une erreur fatale.

BTW, je ne savais pas. Je viens de googler pour "bash cd numéro 4.4".

choroba
la source
8
Intéressant. Une bonne chose à mon humble avis car elle évite de rejeter silencieusement des arguments supplémentaires lorsque l'on a un bug qui s'échappe.
spectras
@spectras Un commentaire intéressant, même si je soupçonnais que cela pourrait avoir des implications en termes de sécurité, ne regardait pas sous cet angle.
Rui F Ribeiro