UNIX aracına boru çıkış dosyası


0

Çıktı dosyasını SoX komut satırı ses aracından e-posta aracı muttuna yönlendirmek istiyorum.

Yapmak istediğim şey buna benzer bir şey:

sox /Users/someUser/Desktop/input.mp3 output.mp3 | mutt -s "someSubject" -a [output-from-sox] some@recipient.com

Nasıl yapılacağını bilmediğim şey köşeli parantezlerle sarılmış.

Ben bir UNIX acemiyim, bu yüzden herhangi bir ipucu çok takdir edilecektir.


Öyle demek sox /Users/someUser/Desktop/input.mp3 output.mp3 ; mutt -s "someSubject" -a output.mp3 some@recipient.comistemiyorsun değil mi? Komut satırı çıktısını göndermek ister misiniz ?
Daniel Beck

Sox'un mp3 dosyasını çıkarmasını ve bu dosyayı e-posta ile göndermesini istiyorum. Boru yaklaşımımın bunu yapmanın doğru yolu olup olmadığını bilmiyorum: S
timkl

soxÇağrınız yazdığından beri output.mp3neden önerdiğim gibi kullanıp gönderdikten sonra silmiyorsunuz? Gönderme başarısız olursa veya böyle bir şey olursa, tekrar denemek için dosyaya sahip olursunuz.
Daniel Beck

1
Kullanmak yerine ; komutları ayırmak için & & kullanın; böylece ikinci komut yalnızca birincisi başarılıysa çalışır.
Majenko

1
-Girdi / çıktı dosyası argümanları göz önüne alındığında , ortak uygulamanın stdin / stdout'u tek tire olarak gösterdiğini eklemek önemlidir. Örneğin, cat (1) manpage örneğindeki örneğe bakın.
przemoc

Yanıtlar:


2

Unix benzeri bir işletim sistemindeki bir boru, bir program çalıştırmak, standart çıktısını almak (aksi takdirde ekrana gider) ve başka bir programa giriş olarak kullanmaktır (normal olarak klavyeden gelecek olan standart girişi yerine). ).

Görünüşe göre yapmak istediğiniz bir dosyaya bir program çıktısına sahip olmak ve daha sonra başka bir programın dosyayı girdi olarak kullanmasını sağlamak gibi görünüyor . Bunun için bir boruya ihtiyacınız yok.

Birini bir diğeri bittikten sonra çalıştırmak için, hepsini bir komut satırında kullanın ;. Örneğin:

sox /Users/someUser/Desktop/input.mp3 output.mp3 ; mutt -s "someSubject" -a output.mp3 some@recipient.com

Unix komut satırı programları "çıkış durumu" veya "dönüş kodu" olarak çıkar. Programların çoğu, başarılı bir şekilde işlerini yaptıklarını veya bir sorun varsa başka bir değer olduğunu göstermek için 0 değerini verir. İlk komutunuz böyle ise, birincisi başarılı olursa yalnızca ikinci komutu çalıştırmak için &&yerine kullanın ;. Örneğin:

sox /Users/someUser/Desktop/input.mp3 output.mp3 && mutt -s "someSubject" -a output.mp3 some@recipient.com

Gerçekten yararlı bir açıklama, bir demet thx! :)
timkl
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.