Ardışık komutlar


14

;Bir satırdaki iki komutu birleştirdiğinde, Bash'in ikinci komutu yürütmeden önce her zaman ilk komutun çıkmasını beklediğini varsaymak doğru mudur? Benzer şekilde, farklı satırlarda iki farklı komut içeren bir kabuk komut dosyasında, Bash her zaman ilk satırdaki komutun, ikinci satırdaki komutu yürütmeden önce çıkmasını bekler.

Bu durumda, ikinci komutun ilk komut bitene kadar beklememesi için bir satırda veya bir komut dosyasında iki komut yürütmenin bir yolu var mı?

Ayrıca, kabuk betiğindeki farklı satırlar ;veya ile birleştirilen ayrı satırlara eşdeğer &&midir?


Yanıtlar:


26

Doğru, komut dosyalarındaki komutlar varsayılan olarak sırayla yürütülür.

Bir komutu &(tek bir ve işareti) ekleyerek arka planda çalıştırabilirsiniz .

Ayrı satırlardaki komutlar, ;varsayılan olarak birleştirilmiş komutlara eşdeğerdir . Kabuğunuza sıfır olmayan çıkış kodlarını ( set -e) iptal etmesini söylerseniz , komut dosyası tüm komutların birleştirildiği gibi yürütülür &&.


2

İkinci sorunuzu cevaplamak için &, arka planda bir komut başlatmak ve komut dosyasının bitmesini beklemeden devam etmek için kullanabilirsiniz.

commandA & commandB

Bunu etkileşimli bir terminalde (komut dosyası yerine) çalıştırırsanız, fgarka plandaki komutu tekrar odak haline getirmek veya jobsarka plan görevlerinin listesini görmek için kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.