Bir dosyayı belirli bir programa yönlendirdikten sonra “stdin” e geri dönme


5

bashYönlendirme olanaklarını kullanarak belirli bir etki elde etmem gerekiyor .

Bir dosyayı bazı programların standart girişlerine yönlendirebileceğimi biliyorum:

[user@host]$ application < file.txt

Mesele şu ki, bilmek istediğim dosya içeriği iletildikten sonra bu programın girişini kontrol etmeyi geri alabilir miyim. Başka bir deyişle, yukarıdakine benzer bir komut çalıştırmak istiyorum ve ardından uygulamanın sonlandırılması yerine, standart girdiden (klavye) gelen diğer komutları beklemesini istiyorum.

Bu soruyu yazarken, ilk önce standart çıktıya bazı veriler yazacak ve sonra yankı gibi davranacak başka bir uygulama (veya bir komut dosyası) yazabileceğimi düşündüm.

[user@host]$ stdin_proxy.sh | application

İşe yarar mıydı ve daha iyi bir yolu var mı? Bu konuyu kapsayan bir grup Google öğretici dersi var, ancak hepsi bir öneride bulunuyor - "dosya içerikleri okunduktan sonra stdin'i yeniden aç". Hovewer, kaynak koduna erişimim yok application.

Yanıtlar:


6

cat Bunu yeterince kolay yapabilir.

cat file.txt - | application

Bunun, uygulamayı aslında bir terminale bağlı olduğunu düşünmeye kandırmayacağını unutmayın; Bunun unbufferiçin ihtiyacınız olacak.


46 saniye daha hızlı.
whitequark
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.