komut satırında </ dev / null & kullanımı


12

Aşağıdaki komut satırını kullanarak örnek bir java programı çalıştırmayı denedim. Ancak, arka kısmın ne için < /dev/null &kullanıldığını bilmiyorum ?

java   -cp  /home/weka.jar weka.classifiers.trees.J48 t train_file  >& log < /dev/null &

Yanıtlar:


21

< /dev/nullprograma anında EOF göndermek için kullanılır, böylece girdi beklemez ( /dev/nullboş aygıt, kendisine yazılan tüm verileri atar, ancak yazma işleminin başarılı olduğunu ve hiçbir veri sağlamadığını bildiren özel bir dosyadır) ondan okunan herhangi bir işlem, derhal EOF sağlar). &önceki işlemin arka planında kullanılan özel bir komut ayırıcı türüdür.

Aranan programı bilmeden, bu şekilde çalıştırmanın neden gerekli olduğunu doğrudan bilmiyorum.


6

</dev/nullprogramın girişini terminalden ayırır. Bazı programlar, standart girdilerinin neye bağlı olduğuna bağlı olarak farklı tepki verir. Yeniden yönlendirme ile </dev/nullprogram, girişinin bir terminalden gelmediğini söyleyebilir ve standart girişinden okumaya çalışırsa hemen bir dosya sonu göstergesi alır.

Sondaki yalnız &programın arka planda yürütülmesine neden olur. Bu, derhal bir kabuk istemi alacağınız anlamına gelir. Olmadan, &bir kabuk komut istemi yalnızca program yürütmeyi bitirdiğinde geri alırsınız.

Tek başına &ilgisiz olduğuna dikkat edin >&. >&hem programın standart çıktısını hem de programın standart hatasını operatörden sonra (burada log) belirtilen dosya adına yönlendiren bir yönlendirme operatörüdür (tcsh, bash ve zsh olarak ).

Başka bir deyişle, bu komut satırını gördüğünde kabuğun yaptığı şey:

  • Arka planda bir işlem başlatın. Arka plan işleminde:
    • Standart girişi /dev/null( boş aygıta ) bağlayın .
    • Hem standart çıktıyı hem de standart hatayı çağrılan dosyaya bağlayın log(henüz mevcut değilse dosya oluşturma ve varsa kesme).
    • Adlı çalıştırılabilir dosyayı arayın javaiçinde $PATH.
    • 5 argümanlarla bu dosyayı çalıştırın -cp, /home/weka.jar, weka.classifiers.trees.J48, –t, train_file`.
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.