Engellemeyen bash komutu


11

Diyelim ki aşağıdakileri içeren bir bash betiğim var:

#!/bin/sh
gedit
rm *.temp

Bunu kullanarak yürüttüğümde sh ./test.sh, geditaçılır , ancak rmkapatılana kadar parça çalışmaz gedit.

Ben geditkapalı olmasa bile komut dosyası çalışmaya devam etmek istiyorum ; sanki geditbash infazını engellemiyor.

Verdiğim örnek sadece bir örnektir ( rmilkini koymak gerçek bir durumda işe yaramaz).

Yanıtlar:


25

Aradığınız terime bir işin "arka planı" denir. Kabuğunuzda veya komut dosyasında bir komut çalıştırdığınızda, arkaplana göndermek ve yeni komutlar veya komut dosyasının geri kalanını çalıştırmaya devam etmek için sonuna bir bayrak ekleyebilirsiniz. Dahil çoğu kabuklarda sh, bu &karakter.

#!/bin/sh
gedit &
rm ./*.temp

Bu şekilde, kabuk sona erdirmeyi geditve her ikisini de beklemez rmve gediteşzamanlı olarak çalışır.

"Engelleme" terimi, genellikle dosyalara veya bir cihaza giriş / çıkış akışlarıyla ilgilidir. Ayrıca derlenmiş dillerde kullandığınız anlama benzer bir şekilde kullanılır, ancak bash ve benzer kabuk komut dosyalarında, terminoloji (ve işlev!) Oldukça farklıdır.


teşekkür ederim! Google'da neden sadece fifo ve girdi sonuçları aldığımı açıklayan: D
Plante

Benim izlenimim, Plante'nin bir komut dosyasını dışarıdan etkilemek, her işlemi arka planda gerçekleştirmek, komut dosyasını yeniden yazmak istememesi.
kullanıcı bilinmiyor

@user: Ne istediğini tahmin etmem birkaç okuma aldı. Belki açıklığa kavuşturmak için soru hakkında yorum yapabilirsiniz.
Caleb

Tam da ihtiyacım olan şey bu, tekrar teşekkürler. şimdiye kadar harika çalışıyor!
Plante
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.