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?


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".


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.