Различное поведение cd с несколькими аргументами в выпусках bash


14

Размещение здесь чего-то, что озадачивает меня; обновление сервера приложений от Jessie до Stretch сломало bashскрипт.

После расследования мы сузили это до изменения поведения cdкоманды. Я не обсуждаю здесь, если то, что делает сценарий, является хорошей идеей или может быть улучшено, я просто фокусируюсь на изменении поведения / осознании изменений мышления.

Джесси

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

CD работает и CD в первый каталог; на самом деле * -run - это символическая ссылка на тот же каталог.

Протяжение

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

bash составляет 4.3.30 (1) в Джесси, и 4.4.12 (1) в Stretch.

Почему изменения в поведении между Джесси и Стретч?


Ответы:


23

Смотрите Relase Notes из Bash 4.4 , особенно

кв.кв. В config-top.h есть новая опция, которую можно задать несколькими ошибками в каталоге cd.

Кстати, я не знал. Я просто погуглил для "bash cd number 4.4".


8
Интересный. Хорошая вещь, imho, поскольку она избегает молчаливого отбрасывания дополнительных аргументов, когда у вас есть выходящая ошибка.
spectras

@spectras Интересный комментарий, хотя я подозревал, что это может иметь последствия для безопасности, не смотрел с этой точки зрения.
Руи Ф Рибейро
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.