Giriş
<(...) şeklindeki komutları çalıştırır ve çıktısını verir. Açıklaması şöyle
<(...) şeklindeki komutları çalıştırır ve çıktısını verir. Açıklaması şöyle
The <(...) process substitution executes the contained script (in a subshell), but it acts like a filename, so you need the first < to redirect the contents (which is the output of the script) into the braced script. The grouped commands are executed in the current shel;.
process substitution Yerine Farklı Alternatifler
1. pipe Kullanmak
Process substitution yerine komut çıktısı pipe ile gönderilebilir. Çıktıyı komut gruplarına göndermek istersek {...} şeklinde kullanmak gerekir. Şöyle yaparız.
df | { read a ; read a b ; echo $a ; }
2. subshell Kullanmak
Aslında pile ile aynı şey. Sadece çıktı veren komut farklı bir shell içinde çalıştırılıyor.
Örnek
Şöyle yaparız
$ ( cat file1; echo "newtextinbetween"; cat file2 ) > file3
$ cat file3
text1
newtextinbetween
text2
process substitution Kullanımı
Örnek
Şöyle yaparız. file1 ve file2'nin içeriğinin arasına "nextextinbetween" eklenir.
cat file1 <(echo "newtextinbetween") file2 > file3
Örnek
Örnek
Eğer okuması zorsa çoklu satıra bölünebilir. Şöyle yaparız. Burada df komutunu çıktısındaki her bir sütun header, filesystem ve rest değişkenlerine okunuyor
{
read header
read filesystem rest
} < <(
df .
)
echo "$filesystem"
Hiç yorum yok:
Yorum Gönder