SORU
26 HAZİRAN 2015, Cuma


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
26 HAZİRAN 2015, Cuma


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
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Booredatwork.com

    Booredatwork

    5 Ocak 2009
  • Professor Messer

    Professor Me

    27 NİSAN 2007
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010