Neden bu komut kabuk öldürür mü?
Güncelleme:Bu daha tekrarlanabilir olduğunu daha genel bir emirdir. Kabuklu deniz ürünleri daha genel bir düzeni olduğunu tespit etmiştir:
non-existingcommand & existingcommand &
örneğin,
xyz & echo &
Ayrıca, bir iş arkadaşınız bir ssh bağlantısı üzerinden denemek zorundaydım ve onun bağlantı komutu çalıştırdıktan sonra kapatıldı. Bu belirli bir terminal emülatörü ile sınırlı gibi görünmüyor.
Orijinal soru:
echo?a=1&b=2|3&c=4=
Davranış:
Komutu yürütmeden sonra, mevcut Gnome Terminal Hesabım uyarı olmadan kapanır.
Arka plan:
Curl komutu ile bir URL test ama teklif etmeyi unutmuş olduğumuz veya özel karakterler (dolayısıyla ve işaretler ve işaretleri eşittir) kaçış. Sözdizimi sorunları veya komut bulunamadı saçmalığı bekliyor, biz yerine bizim kabuk sadece istifa izledim. Biraz zaman komut davranışa neden olacak en az daraltarak geçirdik.
Ubuntu 14.10 geçerli üzerinde Gnome Terminal kullanıyoruz. Garip bir şekilde, davranış oturumdan eğer ben ayırmak bile byobu çalıştırıyorum başka bir kutu üzerinde mevcut değil. Ayrıca özellik listesi üzerinde olmaz. Ne yazık ki Ubuntu 14.10 geçerli aksi takdirde test için sınırlı değilim.
Aşağıdaki komutu da benim terminal öldürür ama . not: ^em>zaman sadece yarısı:
echo?a=1&b=2&c=3=
Ek testler:
Birisi arttıkça kullanmanızı öneririz...
guest-cvow8T@chortles:~$ bash -c 'echo?a=1&b=2|4&c=3='
bash: echo?a=1: command not found
guest-cvow8T@chortles:~$ bash: 4: command not found
Çıkış yok.
CEVAP
OEL bir VM üzerinde bir Ubuntu VM ama bu sorunu yeniden. Fark, command-not-found
yüklendi ve 12* *python komut dosyası sağlar paket Ubuntu oldu. Bu komut kabuk çıkmak için sorumlu.
/etc/bash.bashrc
bir fonksiyonudur /usr/lib/command-not-found
yürüten command-not-found_handle
. Bu komutları çalıştırmak için çalıştığınızda, bu nedenle, terminal çıkar. /usr/lib/command-not-found
, çağrı yorumladı zaman artık sorun tekrarlanabilir.
/etc/bash.bashrc
: benim
function command_not_found_handle {
#check because c-n-f could've been removed in meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-founf/command-not-found ]; then
/usr/bin/python /usr/share/command-not-founf/command-not-found -- "$1"
return $?
else
printf "%s:command not found\n" "$1"
return 127
fi
}
Neden bir ters eğik çizgi ile bir kabu...
İnsanlar neden yazma #!//bin/Python ko...
Bash kabuk komut getopts uzun kullanar...
Eğer herhangi bir komut sıfır olmayan ...
Neden Python'doğrudan kabuk komut...