2013-10-04 22 views
5

Bu çok basit csh betik var.Olay bulunamadı csh

#!/bin/csh 
     echo "Hello World!" 
     echo "How are you today?" 

Ama hata ": Event not found.

Yanlış olan ne alıyorum?

+0

1. satırı '#!/Bin/csh -f' olarak değiştirin ve tekrar deneyin. Bu .cshrc veya '.tcshrc 'ile ilişkili olabilir. – timrau

+0

denedi. Çalışmıyor – Programmer

cevap

7

csh, geçmişin yerine kullanılması için ! karakterini kullanır. Yani !" dizisinde, " dizgenin kapanış tırnak işareti olarak ele alınmaz; bunun yerine, komut satırında ile başlayan komut satırında bir şey arar, komut satırında !foo yazarak foo ile başlayan en son komutu tekrarlar.

En azından orijinal csh için, bu yer değiştirme her zaman tek tırnaklı dizelerde bile yapılır (böylece çift tırnakların tek tırnaklara değiştirilmesi zorunlu olarak yardımcı olmaz). .

#!/bin/csh -f 
echo "Hello World\!" 
echo "How are you today?" 

(bazı sistemleri, ben tek tırnak yerine çift tırnak kullanarak hatayı önlemek fark ettiklerinden ben bu olduğunu düşünüyorum:

bir ! karakteri kaçmak için tek yol bir \ ters eğik çizgi ile olan bu sistemler /bin/csh biraz farklı çalışır /bin/tcsh bir sembolik, çünkü yapmak, komut taşınabilir olmasını istiyorsanız. Bunu bağımlı olmamalıdır.) Ben deekledik

not #! hattınaseçeneği. Bu, kabuğun başlangıçta $HOME/.cshrc'u çalıştırmasını engeller ve genellikle csh komut dosyaları için iyi bir fikirdir. Onları biraz daha hızlı çalıştırır ve kazara bağımlılığı kendi .cshrc'a engeller, bu da başkaları komut dosyanızı çalıştırdığında bir sorun olabilir.

Ve csh komut dosyası hakkında herhangi Söz konusu

, yasal olarak [*] Bu bağlantı sonrası mecburum:

http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot

[*] Aslında yasal olarak bu bağlantı sonrası zorunda değilim.

+1

TL; DR: "Sorun nedir?" "Csh." Hem soruya hem de cevaplamaya +1. – stevesliva