Різна поведінка 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,33,30 (1) у Джессі, а 4,4,12 (1) у Стретчі.

Чому зміна поведінки між Джессі та Стретчем?


Відповіді:


23

Див розблокування , Записки Баш 4.4 , особливо

qq. У config-top.h є нова опція, яка встановлює декілька аргументів каталогу до cdфатальної помилки.

До речі, я не знав. Я просто гуглив за "bash cd номер 4.4".


8
Цікаво. Хороша річ imho, оскільки це дозволяє уникнути мовчазного відкидання додаткових аргументів, коли у вас є втеча помилка.
спектри

@spectras Цікавий коментар, хоча я підозрював, що це може мати наслідки з точки зору безпеки, не дивився з цього погляду.
Rui F Ribeiro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.