bash programming dengan contoh – Pipes dan Redirection

Redirecting Output

Cobalah beberapa contoh berikut:

$ ls -l > lsout.txt

command tersebut akan menyimpan output dari command ls ke file bernama lsout.txt.
jika kita mengeksekusi lagi command lainnya dengan operator redirection >, maka isi lsout.txt akan ditimpa dengan output command yang baru dieksekusi tersebut (tanpa peringatan).

Contoh berikutnya, cobalah menambahkan output command pada baris terakhir file output.

$ ps >> lsout.txt

perhatikan, file lsout.txt otomatis akan terisi pada baris terakhir dengan command yang barusan kita eksekusi.

$ more lsout.txt

Redirecting pada linux ada beberapa jenis, dikenal dengan file descriptor.
file descriptor 0 adalah standar input, file descriptor 1 adalah standar output, dan file descriptor 2 adalah standar error output.
Lebih lanjut tentang file descriptor akan dibahas pada tulisan berikutnya.

Untuk me-redirect standar error output, kita menggunakan operator > dengan kode file descriptor yang diinginkan. Untuk standar error output, maka operator redirect kita menggunakan 2>. Cara ini seringkali bermanfaat untuk mencegah error suatu command ditampilkan di layar monitor. Jadi, output diarahkan ke file tertentu.

Contoh, kita ingin meng-kill sebuah PID program melalui script. Selalu ada kemungkinan program sudah exit duluan sebelum di-kill oleh script yang kita jalankan. Jika program yang mau di kill sudah exit, command kill akan menuliskan error di layar monitor. error ini dikenal sebagai standar error output.
Dengan me-redirect standar output dan error, kita bisa mencegah command kill menuliskan output apapun ke layar monitor.

Command berikut:

$ kill -9 1357 > killout.txt 2> killerr.txt

akan mengarahkan output dan error dari command kill ke file output terpisah.

Sedangkan:

$ kill -9 1357 > killouterr.txt 2>&1

akan mengarahkan output dan error dari command kill ke file output yang sama. Command tersebut akan “me-redirect standar output ke file killouterr.txt, kemudian me-redirect standar error ke tempat yang sama seperti standar output”.
Jika kita menuliskan command dengan urutan yang salah, redirect tidak akan menghasilkan output sesuai dengan yang diharapkan.

Redirecting Input

Dengan syntax yang sama, dengan operator yang berbeda. Untuk me-redirect input, cukup menggunakan operator < untuk meredirect file sebagai input.

$ more < lsout.txt

Pipes

Kita bisa menghubungkan antar proses dengan operator | - pipes. Tidak seperti MSDOS, proses-proses yang terhubung dengan operator pipe bisa berjalan secara simultan dan terjadwal otomatis ketika data-data melewati proses-proses tersebut.

Contoh, untuk melakukan sortir command ps kita melakukan dua step:

$ ps > psout.txt
$ sort psout.txt > pssort.txt

Dengan cara pipes, cukup satu command untuk mensortir output:

$ ps | sort | > pssort.txt

untuk menampilkan per-layar:

$ ps | sort | more

Tags: , , , ,

{ 1 comment to read ... please submit second! }

  1. nice.. tutorial bang
    :p

{ 0 Pingbacks/Trackbacks }

Leave a Reply

Your email address will not be published. Required fields are marked *

*


6 + = ten

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>