Bas sürümlerinde birden çok argüman içeren cd'nin farklı davranışı


14

Buraya beni şaşırtan bir şey gönderiyorum; bir uygulama sunucusunun Jessie'den Stretch'e yükseltilmesi bir bashsenaryoyu kırdı .

Soruşturma üzerine, onu cdkomutun davranış değişikliğine daralttık . Senaryonun ne yaptığı iyi bir fikirse burada tartışmıyorum ya da geliştirilebiliyorsa, sadece davranış değişikliği / değişiklik zihniyetinin farkındalığına odaklanıyorum.

Jessie

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

cd çalışır ve ilk dizine cd'leri; Aslında * -run aynı dizine sembolik bir bağlantıdır.

Uzatmak

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

bash Jessie'de 4.3.30 (1) ve Stretch'te 4.4.12 (1) dir.

Jessie ve Stretch arasındaki davranış değişikliği neden?


Yanıtlar:


23

Bkz. Özellikle bash 4.4'ün Notları

qq. Config-top.h dosyasında, birden çok dizin bağımsız değişkenini cdölümcül hataya dönüştüren yeni bir seçenek ayarlanabilir .

BTW, bilmiyordum. Ben sadece "bash cd number 4.4" için googled.


8
İlginç. İyi Bir Şey, kaçan bir hata olduğunda ek argümanları sessizce atmayı önlediğinden imho.
spektrumlar

@spectras İlginç bir yorum, güvenlik açısından etkileri olabileceğinden şüphelenirken, bu açıdan bakmıyordu.
Rui F Ribeiro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.