Bu eğitimde, Linux'ta Bash Bekleme Komutunu keşfedeceğiz.
Sözdizimi:
Linux'ta Wait komutunun genel sözdizimi şöyledir:
bekle [seçenek] kimliği
Kimlik, bir işlem kimliği veya İş Kimliği olacaktır.
Linux'ta Bash Bekleme Komutunu Açıklamak:
İlk olarak, touch komutunu kullanarak bir dosya oluşturun:
$ BashWait'e dokunun.ş
Aşağıdaki komutu kullanarak bu dosyayı yürütülebilir yapın:
$ chmod +x dosya adı
Dosyaya yürütülebilir ayrıcalıklar verildiğinde, dosyayı açın ve bash dosyasına bir komut dosyası yazın:
#!/bin/bashuyku 3 &
süreçKimliği=$!
echo "PID: $processID"
bekle $processID
echo "Çıkış durumu: $?"
$! BASH'de en son işlemin PID'sini depolayan bir değişkendir.
Şimdi betiği aşağıdaki gibi çalıştırın:
$ ./dosya adı$ ./BashBekle.ş
Kabukta İşlem Kimliği ve Var durumu görünecek.
-n seçeneğini kullanarak:
-n seçeneğiyle, wait komutu, çıkış durumunu döndürmeden önce yalnızca sağlanan işlem kimliğinden veya iş özelliklerinden tek bir işin bitmesini bekler. Wait -n herhangi bir arka plan işinin bitmesini bekler ve herhangi bir bağımsız değişken sağlanmadıysa işten çıkış durumunu döndürür.
Aşağıda verilen satırları betiğinize yazın:
#!/bin/bashuyku 30 &
uyku 8 &
uyku 7 &
bekle -n
echo "İlk iş tamamlandı."
Bekle
echo "Tüm işler tamamlandı."
Ardından, betiği tekrar çalıştırın ve ilk iş tamamlandığında mesajı terminalde yazdıracak ve diğer tüm işlerin tamamlanmasını bekleyecektir.
-f seçeneğini kullanarak:
-f seçeneği, çıkış kodunu döndürmeden önce her işlem kimliğinin veya işin durmasını bekler. İş denetimi, yalnızca varsayılan olarak yanıt veren istemler için kullanılabilir.
Terminali açın ve komutu çalıştırın:
3944 işlemini bekleyin.
Farklı bir terminal penceresi açın ve işlemi sonlandırmak için kill komutunu çalıştırın.
Durum değiştirilecek. Bekle komutu tamamlanacak ve işlem çıkış kodunu döndürecektir.
Yukarıda verilen adımları -f komutuyla tekrarlayın.
Bekle komutuyla komut dosyası:
"merhaba" kullanıyoruz.sh' ve 'bash.gösteri için sh' komut dosyaları. merhaba.sh' betiği 1'den 5'e kadar olan sayıları yazdırır ve 'bash'.sh' betiği merhaba diyor.sh ve merhaba PID'sine sahip olarak arka planda çalıştırır.sh ve bitmesini bekliyorum.
Hello ve bash adında iki komut dosyası oluşturun:
Aşağıda verilen satırları merhaba kısmına ekleyin.sh dosyası:
#!/bin/bashben için 1 2 3 4 5 6 7 8 9 10
yapmak
yankı "merhaba.sh - Döngü numarası $i.”
bitti
Bash betiğine aşağıda verilen satırları ekleyin:
#!/bin/bashecho “Başladı bash.ş"
echo “Merhaba başladı.ş"
./Merhaba.sh &
process_id=$!
$process_id bekle
echo “Tamamlanan merhaba.ş
Çıktı:
Sonuç:
Bir kullanıcı bir süreci durdurmak istediğinde, sistem süreç tarafından tutulan tüm kaynakları serbest bırakır ve bir başkasının başlamasını bekler. Diğer işlemler tamamlandıktan sonra işlemi yeniden başlatabileceğini bildirmemiz gerekecek. Bash'deki wait komutu, yürütmenin tamamlanmasını bekler ve işlem yürütmesi tamamlandığında çıkış durumunu döndürür. Bu kılavuzda, Linux'ta Bash wait komutunun bazı örneklerini gördük.