Arka planda bir komut çalıştırırsam &, şunun gibi:
sleep 2 &
komut bittiğinde, "Tamam" ı alıyorum. "Tamamlandı" mesajını görmekten nasıl kaçınabilirim?
Arka planda bir komut çalıştırırsam &, şunun gibi:
sleep 2 &
komut bittiğinde, "Tamam" ı alıyorum. "Tamamlandı" mesajını görmekten nasıl kaçınabilirim?
Yanıtlar:
Yerleşik kabuğu yürütün:
$ set +m
Bu, “monitör modu” nu kapatarak çalışır, böylece kabuk sonlanan arka plan işlerini rapor etmez.
Komutu aşağıdaki gibi bir alt kabukta çalıştırmanıza rağmen:
$ (sleep 2&)
... ayrıca mesajı devre dışı bırakacaktır, çalışmasının tek nedeni izleme modunun varsayılan olarak yalnızca etkileşimli mermiler için etkinleştirilmiş olmasıdır. Yani, alt kabuk, otomatik olarak "set + m" olan ekstra bir kabuk çalıştırarak mesajdan kaçınır .
Daha önceki iki cevabı netleştirmek istiyorum. İstediğin şey, kabuğundaki herhangi bir komutun Done mesajını asla görmemekse set +m, yolun yoludur. Sadece .profile ve / veya .bashrc içine koyun ve bitirin. Bununla birlikte, şunu yazarsanız:
set +m
sleep 2 &
set -m
ve uyku finalden sonra sona eriyor set -m, yine de bitmiş mesajı alacaksınız.
Tek bir komut çağrısı için mesajı devre dışı bırakmak istiyorsanız, alt kabuk tekniği (sleep 2 &)gidilecek yoldur.
Dürüst olmak gerekirse, sadece biliyordum set +m, o yüzden +1 beni aydınlatmak için Wooble'a. Ancak, istediğiniz iki çözümden hangisinin yapmaya çalıştığınıza bağlı olduğunu belirtmekte fayda var.
jobshiçbir şey göstermeyeceğini) unutmayın.