Perilaku cd yang berbeda dengan beberapa argumen dalam rilis bash

14

Posting di sini sesuatu yang membingungkan saya; memutakhirkan server aplikasi dari Jessie ke Stretch memecahkan bashskrip.

Setelah diselidiki, kami mempersempitnya ke perubahan perilaku cdperintah. Saya tidak membahas di sini jika apa yang dilakukan skrip adalah ide yang bagus, atau jika bisa diperbaiki, saya hanya fokus pada perubahan perilaku / kesadaran akan perubahan pola pikir.

Jessie

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

cd works dan cd ke direktori pertama; sebenarnya * -run adalah tautan simbolis ke direktori yang sama.

Meregang

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

bash adalah 4.3.30 (1) di Jessie, dan 4.4.12 (1) di Stretch.

Mengapa perubahan perilaku antara Jessie dan Stretch?

Rui F Ribeiro
sumber

Jawaban:

23

Lihat Relase Notes dari bash 4.4 , khususnya

qq. Ada opsi baru yang bisa diatur di config-top.h yang membuat beberapa argumen direktori cdmenjadi kesalahan fatal.

BTW, saya tidak tahu. Saya baru saja googled untuk "bash cd number 4.4".

choroba
sumber
8
Menarik. A Good Thing imho karena menghindari diam-diam membuang argumen tambahan ketika seseorang memiliki bug melarikan diri.
spektrum
@spectras Komentar yang menarik, sementara saya curiga bisa berimplikasi pada keamanan, tidak melihat dari sudut itu.
Rui F Ribeiro