Giriş
Açıklaması şöyle.
Kullanım
- tee'den sonra bir dosya ismi verilir.
- Bazen tee'den sonra yeni bir pipie işareti ile tee'de çıktısını başka uygulamaya geçer
1. Komutun Çıktısı
tee komutun çıktısını pipe ile okur
Örnek
Hem stdout hem de dosyaya yazdırmak için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
tee komutun çıktısını pipe ile okur
Örnek
Şöyle yaparız.
Şöyle yaparız
Açıklaması şöyle. Dosyaya ekleme (append) için kullanılır.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Açıklaması şöyle.
Açıklaması şöyle.
Eğer myscrip hata verirse tee çalışmayı durdurur. Bu seçenek ile myscrip hata verse bile tee çalışmaya devam eder ve çıktı logfile.txt dosyasına yazılmaya devam eder.
Örnek
Şöyle yaparız
Açıklaması şöyle.
At its simplest, it takes data on standard input and writes that to standard output and one (or more) files.Normalde stdout'a giden çıktıyı hem ekran hem de dosyaya yazdırmak için kullanılır. Eğer sadece şöyle yaparsak
do_something >> logfile
veya şöyle yaparsakdo_something_else > logfile
çıktı sadece dosyaya gider. Ancak hem ekrana hem de dosyaya göndermek için tee kullanılır.Kullanım
- tee'den sonra bir dosya ismi verilir.
- Bazen tee'den sonra yeni bir pipie işareti ile tee'de çıktısını başka uygulamaya geçer
1. Komutun Çıktısı
tee komutun çıktısını pipe ile okur
Örnek
Hem stdout hem de dosyaya yazdırmak için şöyle yaparız.
$ ls -l /etc/passwd | tee logfile.txt
ÖrnekŞöyle yaparız.
$ echo "hi" | tee test.txt
hi
ÖrnekŞöyle yaparız.
rpm -qa | tee file | wc -l
2. Betikin Çıktısıtee komutun çıktısını pipe ile okur
Örnek
Şöyle yaparız.
./script.sh | tee
logfile.txt
ÖrnekŞöyle yaparız
a-command | tee logfile.txt | myscript
Seçenekler
-a seçeneğiAçıklaması şöyle. Dosyaya ekleme (append) için kullanılır.
-a, --append
append to the given FILEs, do not overwrite
ÖrnekŞöyle yaparız.
do_something | tee -a logfile
ÖrnekŞöyle yaparız.
./script1.sh | tee -a logfile.txt
./script2.sh | tee -a logfile.txt
ÖrnekŞöyle yaparız.
( cmd | tee -a file2 ) >> file1 2>&1
-i seçeneğiAçıklaması şöyle.
-i, --ignore-interrupts
ignore interrupt signals
Örnek
Elimizde şöyle bir komut olsun. ping'in çıktısını tee ala alalım ve sonra Crtl + C ile durduralım
$ ping google.com | tee log
PING google.com (74.125.131.113) 56(84) bytes of data.
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=1 ttl=56 time=34.1 ms
...
^C
Açıklaması şöyle
Ctrl+ C causes SIGINT to be sent to all processes in the foreground process group, i.e. in this scenario all the processes in the pipeline (ping and tee). tee doesn’t catch SIGINT, so when it receives the signal, it dies, closing its end of the pipe. What happens next is a race: - if ping was still outputting, it will die with SIGPIPE before it gets the SIGINT;- if it gets the SIGINT before outputting anything, it will try to output its summary and die with SIGPIPE.In any case, there’s no longer anywhere for the output to go.
Şöyle yaparız. Böylece Ctrl + C ile tee ölmez. ping kapanır ve daha sonra da tee kapanır.
$ ping google.com | tee --ignore-interrupts log
-help seçeneği
--help
display this help and exit
--version
output version information and exit
--output_error seçeneğiEğer myscrip hata verirse tee çalışmayı durdurur. Bu seçenek ile myscrip hata verse bile tee çalışmaya devam eder ve çıktı logfile.txt dosyasına yazılmaya devam eder.
Örnek
Şöyle yaparız
a-command | tee --output-error=warn logfile.txt | myscript
Hiç yorum yok:
Yorum Gönder