2016-04-07 31 views
-1

Çıktı yönlendirme dosya adının bash parametresi olarak alınmasının mümkün olup olmadığını bilmek ister misiniz? ÖrneğinBash olarak çıkış yönlendirmesi nasıl alınır?

:

./myscript.sh parameter1 > outputfile 

$ 2 gibi bir parametre olarak "outputfile" almanın bir yolu var mı? Komut dosyasımda outputfile'da birkaç işlem yapmak zorundayım ama hangi dosyayı güncellemem gerektiğini bilmiyorum ... İkinci sorun şu ki, bu betik zaten çalışıyor ve birkaç görev tarafından kullanılıyor, bu yüzden kullanıcı girdisini değiştiremiyorum .. .

Saygılarımızla

+0

Sorunu anladığımdan emin değilim. Bir betik, adı "doSomething> $ 2" gibi bir parametre olarak verilen bir dosyaya kesinlikle yönlendirebilir. andSomeMore -foo $ 1 >> $ 2'. –

+0

Ne tür işlemler yapmak zorundasınız? Dosyayı doğrudan değiştirirseniz, bu, stdout'a yazılan sıradan çıktıyla çakışması muhtemeldir. – Barmar

cevap

0

Yönlendirmeler programa parametreler değillerdir. Bir programın çıkışı yönlendirildiğinde, kabuk dosyayı açar ve programı çalıştırmadan önce dosya tanıtıcısını 2'a bağlar. Program daha sonra basitçe fd 2'ye (stdout) yazar ve dosyaya gider.

Linux ve benzeri sistemlerde, işlemin stdout dosyasına sembolik bir bağlantı olan /dev/stdout kullanabilirsiniz.