یکشنبه، دی ۱۶، ۱۳۸۶

یک مثال ساده برای درک بهتر پایپ

یک اسکریپت ساده که در یک حلقه منتظر ورودی کاربر است، و یک پیغام سلام چاپ می‌کند. عملیات ورود با EOF یا Ctrl+D در UNIX و Ctrl+Z در DOS خاتمه می‌یابد.

sayhello.sh
  1:   #! /bin/bash
  2:   
  3:   while read name; do
  4:       echo Hello $name
  5:   done

نمونه‌ی خروجی:

Output
$ ./sayhello.sh
Amir
Hello Amir
Kamran
Hello Kamran
[Ctrl+D]
$

یک فایل می‌سازیم که در آن در هر خط یک نام قرار دارد. با دستور cat‌ می‌توان محتویات فایل را به stdout فرستاد.

Creating names.txt
$ echo -e "Ali\nHasan\nAkbar\nAsghar" > names.txt
$ cat names.txt
Ali
Hasan
Akbar
Asghar
$

با استفاده از پایپ خروجی cat را به ورودی اسکریپتی که قبلا نوشتیم می‌فرستیم.

using pipe
$ cat names.txt | ./sayhello.sh
Hello Ali
Hello Hasan
Hello Akbar
Hello Asghar
$

از پایپ می‌توان بین توابع داخل یک اسکریپت هم استفاده کرد.

این پست نیز در همین رابطه بود.

0 نظر:

ارسال یک نظر

جهت نمایش صحیح آدرس سایتتان، حتما قبل از آدرس //:http را درج کنید.