Linux Uyku Komutu İle Bash Komut Dosyasını Duraklatma

Fatmawati Achmad Zaenuri/Shutterstock.com

Sleep komutu, Linux bilgisayarınızın hiçbir şey yapmamasını sağlar. Muhtemelen karşı sezgiseldir, ancak bir eylemsizlik süresi bazen tam ihtiyaç duyulan şeydir. Bu makalede, bu Bash kabuk komutunun etkili bir şekilde nasıl kullanılacağı gösterilmektedir.

sleep kullanmak kolaydır. Komut satırında sleep , boşluk, sayı yazın ve Enter tuşuna basın.

sleep 5

İmleç beş saniye boyunca kaybolur ve sonra geri döner. Ne oldu? Komut satırında sleep , Bash'e sağladığınız süre boyunca işlemi askıya alma talimatı verir. Örneğimizde bu beş saniyeydi.

Süreleri günler, saatler, dakikalar ve saniyeler içinde sleep . Bunu yapmak için, süre ile d, h, m, veya s eklerini içerir. Uykunun bir gün, dört saat, yedi dakika ve beş saniye duraklamasını sağlamak için aşağıdaki gibi bir komut kullanın:

sleep 1d 4h 7m 5s

s soneki (saniye için) isteğe bağlıdır. Sonek olmadan, sleep herhangi bir süreyi saniye olarak değerlendirir. Eğer olmasını istedik varsayalım sleep beş dakika yirmi saniye süreyle duraklama. Bu komutun doğru bir formatı şudur:

sleep 5m 20

Dakika sonundaki m son ekini vermeyi unutursanız, sleep beş saniye ve ardından tekrar yirmi saniye beklemesini söyleyeceksiniz. Böylece sleep 25 saniye duraklar.

Pek çok komut, parametreleri belirli bir sırayla vermenizi gerektirir, ancak sleep çok bağışlayıcıdır. Onları herhangi bir sırayla sağlayabilirsiniz ve sleep onlardan anlam ifade edecektir. Parametre olarak bir kayan nokta numarası da sağlayabilirsiniz. Örneğin, 0,5 saat, sleep yarım saat duraklatılmasını istediğinizi belirtmek için geçerli bir yoldur.

Aşağıdaki (giderek eksantrik) komutların tümü sleep 10 saniye ara vermesini söyler.

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Komuttan Önce Duraklatmak için Uykuyu Kullanma

sleep komutu, bir komutun yürütülmesinden önce bir duraklama vermek için kullanılabilir. Bu komut 15 saniye duraklar ve sonra bir uyarı verir.

sleep 15 && echo -en ‘07’

İki Komut Arasında Duraklatmak İçin Uykuyu Kullanma

İki komut arasında bir duraklama vermek için sleep kullanabilirsiniz. Bu komut, Belgeler dizininizdeki dosyaları listeler, beş saniye bekler ve ardından geçerli çalışma dizinini giriş dizininize getirir:

ls -R ~/Documents && sleep 5 && cd ~

Bir Komut Dosyasının Yürütülmesini Duraklatmak için Uyku Kullanımı

Komut dosyasının yürütülmesini kesin bir süre için duraklatmak için sleep komutunu kabuk komut dosyalarında kullanabilirsiniz. Genelde, bunu komutun işlemesine devam etmeden önce işlemin tamamlanması için yeterli zamana izin vermek için yaparsınız. Bir betiğin başka bir kaynağa yaptığı istekleri sınırlandırmak için de kullanabilirsiniz.

Tam olarak bunu göstermek için, işte curl kullanarak bir Google web servisine çağrı yapan bir betik. Web servisini bir kitabın ISBN numarası ile sorguladığınızda, o kitapla ilgili bir JSON verisi dökümü ile yanıt verir. Kitabın başlığını almak için bu verileri jq yardımcı programından geçirerek jq . Betik web servisini zorlamıyor, böylece web istekleri arasında bir saniye uyuyor.

Aşağıdaki metni içeren bir dosya oluşturun ve check_book.sh olarak check_book.sh .

#!/bin/bash

for book in `cat $1`
do
echo $book”:”
curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq ‘.items | .[] | .volumeInfo.title’
echo “”
sleep 1
done

echo “All done.”

Yürütme izinlerini ayarlamak ve komut dosyasını çalıştırılabilir hale getirmek için aşağıdaki komutu yazın.

chmod +x check_book.sh

Komut dosyası curl ve jq yardımcı programlarını gerektirir. Ubuntu veya başka bir Debian tabanlı dağıtım kullanıyorsanız, bu paketleri sisteminize kurmak için apt-get kullanın. Diğer Linux dağıtımlarında bunun yerine Linux dağıtımınızın paket yönetimi aracını kullanın.

sudo apt-get install curl
sudo apt-get install jq

Aşağıdaki sayıları içeren bir metin dosyası oluşturun ve bunu books.txt olarak books.txt .

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

check_book.sh betiğini çalıştırın ve check_book.sh dosyasına parametre olarak books.txt .

./check_book.sh books.txt

Talepler Google web servisine bir saniye aralıklarla yapılır. Kitabın adı, her bir ISBN numarasının sorgulanmasından kısa bir süre sonra görünecektir.

sleep için hepsi bu. check_book.sh betiğinin iç çalışmaları bu makalenin kapsamı dışındadır. Kod, sleep komutunun geçerli bir kullanımını göstermek için tamamen seçildi. Senaryonun iki ana bileşeni hakkında daha fazla bilgi edinmek istiyorsanız, curl proje sayfasına ve jq çevrimiçi kılavuzuna bakın.