En kabukları gibi fonksiyonlar sağlar &&ve ;belirli şekillerde komutların yürütülmesi zinciri ile ilgilidir. Fakat eğer bir komut zaten çalışıyorsa, birincisinin sonucuna bağlı olarak yürütülecek başka bir komutu yine de ekleyebilir miyim? Koştuğumu söyle $ /bin/myprog some output... ama gerçekten istedim /bin/myprog && /usr/bin/mycleanup. Her myprogşeyi öldürüp yeniden başlatamam çünkü çok …
Bir işlem, gibi bir işlemle başlayabilen bir sinyalle öldürüldüğünde SIGINTveya SIGTERMbu sinyali ele almıyorsa, işlemin çıkış kodu ne olur? Peki ya engelsiz sinyaller gibi SIGKILL? Söyleyebileceğim, SIGINTçıkış kodu muhtemel sonuçları olan bir işlemi öldürmek 130, ancak bu çekirdek veya kabuk uygulamasına göre değişebilir mi? $ cat myScript #!/bin/bash sleep 5 …
İstediğimde çıkmayan bir betiğim var. Aynı hatayı içeren bir örnek komut dosyası: #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' Çıktıyı görmeyi varsayardım: :~$ ./test.sh 1 :~$ Ama aslında görüyorum ki: :~$ ./test.sh 1 2 :~$ Does ()nasılsa zincirleme komut, …
Komut dosyamı başarısız bir komutla test etmek istiyorum. Var olan bir komutu kötü argümanlarla kullanabilirim. Ayrıca hemen başarısızlıkla çıkan basit bir senaryo yazabilirim. Her ikisinin de benim için yapması ve çalışması kolaydır, ancak bu amaç için standart bir komut varsa, bunun yerine kullanmak isterim.
Linux çekirdeği davranışını uzun zamandır araştırıyorum ve bana her zaman açıktı: Bir süreç öldüğünde, tüm çocukları initsonunda ölünceye kadar işleme (PID 1) geri verilir . Ancak, son zamanlarda, çekirdekten benden çok daha fazla deneyime sahip biri bana şunu söyledi: (Kullandığınız sürece süreç sonlandığında, tüm çocuklar da öldüğünde NOHUPonlar geri almak …
Bu pasajı göz önünde bulundurun: stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } Normal funcolarak çağrıldığında, komut dosyasının sonlandırılmasına neden olur, bu amaçlanan davranıştır. Ancak, aşağıdaki gibi bir alt kabukta yürütülürse, result=`func` komut dosyasından …
Bu betik "after" ifadesini yankılamaz: #!/bin/bash -e echo "before" echo "anything" | grep e # it would if I searched for 'y' instead echo "after" exit Aynı zamanda -eshebang satırındaki seçeneği kaldırsam da olur , ancak bir hata olması durumunda betiğimin durmasını istiyorum. Grep'in bir eşleşme olmadığını hata olarak düşünmüyorum. …
UNIX'te, bir ana işlem ortadan kaybolduğunda, tüm alt işlemlerin başlangıç olarak ana öğelerini sıfırladığını düşündüm. Bu her zaman doğru değil mi? İstisna var mı?
Bir bash betiğinin sonundaki çıkış kodunun anlamı konusunda kafam karıştı: 0 çıkış kodunun başarılı bir şekilde bittiği ve daha fazla çıkış kodu numarası olduğu anlamına geldiğini biliyorum (yanılmıyorsam 127)? Benim sorum şu, bir betiğin sonunda 0 çıkış kodunu görünce, betiğin başarısız olmasına ya da başka bir anlamı olsa bile çıkış …
Ben komut dosyası herhangi bir çıkış durumu! = 0 çıkacaktır böylece -e ayarlar bir bash komut dosyası var. Değişkenlere atanan bazı temel kabuk aritmetik yapmaya çalışıyorum ve bazen ifade izin veya ifade komutunun çıkış durumu "1" neden 0 eşittir. İşte bir örnek: #!/bin/bash -ex echo "Test 1" Z=`expr 1 - …
Tüm SSH bağlantılarından çıkmanın ve "tek seferde" PuTTY'yi kapatmanın bir yolu var mı ? Windows 7'de çalışıyorum ve çeşitli Linux sunucularına SSH'den PuTTY kullanıyorum. Kendimi çalışırken bulmamın bir örneği: SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> ssh host8 banjer@host8:~> #...doin …