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 &
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:
< /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.
</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:
/dev/null( boş aygıta ) bağlayın .log(henüz mevcut değilse dosya oluşturma ve varsa kesme).javaiçinde $PATH.-cp, /home/weka.jar, weka.classifiers.trees.J48, –t, train_file`.