Kabuk: borular (pipe) ve yönlendirmeler
Kısaca: Kabukta bir boru (|) bir programın çıktısını sonrakinin girdisine bağlar, yönlendirmeler (>, <) girdi ve çıktıyı dosyalara yönlendirir. Bunlardan küçük araçlarla güçlü komut zincirleri kurulur.
Biraz daha ayrıntılı: Her programın üç standart kanalı vardır: girdi (stdin, 0), çıktı (stdout, 1) ve hata çıktısı (stderr, 2). Kabuk bunları yeniden bağlayabilir.
Ayrıntılı
- Boru:
cat log.txt | grep ERROR | sort | uniq -c | sort -rn | headhata iletilerini süzer, sayar ve sıralar. Programlar eşzamanlı çalışır. - Çıktıyı dosyaya:
komut > dosyaüzerine yazar,komut >> dosyaekler. - Girdiyi dosyadan:
komut < dosya. - Hataları ayırma:
komut 2> hatalar.txt, ikisi birliktekomut > hepsi.txt 2>&1veya kısaca&> hepsi.txt(bash). Sıraya dikkat:2>&1, 1’in şu anda gösterdiği yere kopyalar. - Atma:
komut > /dev/null 2>&1. - Aynı anda gösterme ve kaydetme:
komut | tee dosya.txt. - Komut yerine koyma:
$(komut), bir komutun çıktısını başka bir satıra yerleştirir. - Here-string ve here-doc:
<<< "metin"ve<<EOF ... EOFmetni girdi olarak iletir. - Borularda başarı: Varsayılan olarak yalnızca son komutun dönüş değeri sayılır.
set -o pipefailönceki hataları da bildirir.
Ayrıca bak: Kabuk betikleri yazma, Bash