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?


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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.