2009-02-26 11 views
1

Unix tee komutu standart girdiyi stdout AND dosyasına böler.`tee` komut eşdeğeri?

İhtiyacım olan şey, başka bir şekilde çalışan, bir girişe birkaç girişi birleştiren bir şeydir - iki (veya daha fazla) komutun stdout'unu birleştirmem gerekiyor.
Bu uygulamanın semantiklerinin ne olması gerektiğinden emin değil - her argümanın eksiksiz bir komut olduğunu varsayalım.

Örnek:

> eet "echo 1" "echo 2" > file.txt 

içeriğini

1 
2 

olan bir dosya oluşturmak gerekir ben

> echo 1 && echo 2 > zz.txt 

O çalışmıyor çalıştı.

Yan Not: Ben sadece dosyaya her komutun çıktılarını eklemek olabilir biliyorum ama (aslında, ben başka bir programa birleştirilmiş çıkışlar boruya istiyorum) tek seferde yapmak istiyor. Ayrıca
, ben olabilir rulo kendi, ama ben

Oh yeah, ve Windows'ta çalışsam (güzel olurdu ben sanırım rağmen herhangi bash/linux :-) gelemez zaman tembelim -flavored çözelti altkabuk çalıştırmak

(echo 1; echo 2) > file.txt 

deneyin UnxUtils/MSYS/vs.)

cevap

7

yoluyla işler ve orada

{ echo 1; echo 2; } > file.txt 
komutları yürütür

da mümkündür. (Son komut önemlidir sonra noktalı virgül) İşte çalışması gerekir Yani

+0

Hangi kabuğu kullanıyorsunuz? İlk olarak windows cmd.exe dosyasında denedim ve dosyanın içeriği '1; echo 2 '; İkinci seçenek hiç çalışmıyor. –

+0

Bunun gibi cmd.exe içinde çalışmam gerekiyor: (echo 1 && echo 2)> file.txt –

+0

Linux üzerinde bash kullanıyorum. (echo 1 && echo 2) sadece eko 1 0 (başarı) döndürürse çalışır! && AND gibi bir şey ifade eder, echo 2 sadece yankı 1 başarısız olursa çalıştırılır –

-1

echo 1 > zz.txt && echo 2 >> zz.txt

bir altkabuk çalıştırmak etmez. Yaptığınız her şey birbiri ardına iki komut çalıştırıyor, ilk önce bir dosyaya yönlendiriliyor, ve eğer başarılı olsaydı, çıktısını çıktınız. .

+0

Son notu yandaki notu okudunuz mu? –

1

Neyi istediğinizi her iki komutu da paralel olarak çalıştırmak ve her iki çıkışı da başka bir komutla birleştirmek.

yapardım:

(echo 1 & echo 2) | cat 

Nerede "echo 1" ve çıkışları ve "kedi" üreten komutlardır "2 echo" Birleştirilen çıkışını alacak komuttur.