سوال در مورد BASH
|
2010-11-16, 05:28 PM,
ارسال : #1
|
|||
|
|||
سوال در مورد BASH
با سلام خدمت دوستان
در حال مطالعه یک کتاب هستم که یکجا را خوب نفهمیدم. آیا دستور COMMAND1 < COMMAND2 به معنی آن است که خروجی Standard Output مربوط به COMMAND2 به Standard Input مر بوط به COMMAND1 متصل می شود؟ ضمنا آیا دسور COMMAND1 | COMMAND2 به معنی آن است که خروجی Standard Output مربوط به COMMAND1 به ورودی Standard Input مربوط به COMMAND2 انتقال می یابد؟ میتوان گفت A < B دقیقا معادل B | A است یا خیر؟ با تشکر |
|||
2010-11-16, 05:36 PM,
ارسال : #2
|
|||
|
|||
پاسخ: سوال در مورد BASH
توی مثال اول COMMAND2 دستور نیست . بلکه یک فایل هستش .
مثل : کد : less < /etc/passwd |
|||
2010-11-16, 05:53 PM,
ارسال : #3
|
|||
|
|||
پاسخ: سوال در مورد BASH
این مثال رو ببین :
یک مثال خوب از کاربردهای redirect در پوسته لینوکس : کد : head -c 512 < /dev/sda > mbr.backup Debian GNU/Linux System Administrator |
|||
2010-11-16, 06:38 PM,
ارسال : #4
|
|||
|
|||
پاسخ: سوال در مورد BASH
آهان.... الان متوجه شدم.... دست شما درد نکنه
در مورد اون مثال به نظرم میرسه که از اونجا که Master boot record در واقع ۵۱۲ بایت اول دیست است در واقع ابتدا head -c 512 < /dev/sda مستر بوت رکورد رو به Standad output stdout میفرسته و بعدش خروجی به mbr.backup لوله کشی میشه.... درسته؟ حالا یه سوال: در واقع من خیلی از دستوراتی مثل find | grep THE-FILE-NAME استفاده میکردم و حالا دارم درک میکنم چطور کار میکنه. ابتدا find کل فایل های موجود رو به stdout میفرسته و بعد grep اون سطرایی که حاوی THE-FILE-NAME هستند رو سوا میکنه. درسته؟ حال دستور grep THE-TEXT-TO-FIND رو که اجرا میکنم درست مثل یه ادیتور میشه. دلیلش اونه که منتظر فایله؟؟؟؟ درسته دیگه؟؟؟؟ چطور میتونم خودم یه متن چند سطری همونجا تایپ کنم تا داخلش SEARCH کنه؟؟؟ EOF رو چطور خودم ایجاد کنم و بهش بفهمونم؟ همیشه پیشگام ... همیشه بهترین ... همیشه فدورا http://persian-foss-legal.blogspot.com http://www.tesla-sanat.com |
|||
2010-11-16, 07:58 PM,
ارسال : #5
|
|||
|
|||
پاسخ: سوال در مورد BASH
نه دیگه ... نشد ... !
دستور grip می گرده توی یک فایل و دنبال اون بخش مورد نظر میگرده . یا اینکه خروجی یک دستور رو میگیره و در این خروجی دنبال چیز خاصی می گرده . مثلا : کد : grep root /etc/passwd مثلا : کد : cat >> test << EOF |
|||
2010-11-16, 08:09 PM,
ارسال : #6
|
|||
|
|||
پاسخ: سوال در مورد BASH
آقا خودم پیداش کردم... کلید CTRL+D هستش که معادل End of file رو به buffer تفهیم میکنه.... امتحان کن
یادمه قدیما که یکم C کار میکردم در DOS کلید CTRL+Z بود ولی خب در لینوکس ظاهری CTRL+D هستش.... همیشه پیشگام ... همیشه بهترین ... همیشه فدورا http://persian-foss-legal.blogspot.com http://www.tesla-sanat.com |
|||
2010-11-16, 08:17 PM,
ارسال : #7
|
|||
|
|||
پاسخ: سوال در مورد BASH
آقا جان من قاطی کردی . چرا دوتا پست مجزا نوشتی که الان اینجوری بشه ؟
Debian GNU/Linux System Administrator |
|||
2010-11-16, 08:32 PM,
ارسال : #8
|
|||
|
|||
پاسخ: سوال در مورد BASH
آقا باور کن کار میکنه....
مثلا این کارو بکن: کد : [bahman@intel-system ~]$ sed 's/mesal/azmayesh/' در انتهای خط کلید ctrl+d رو بزن. درست مثل این میمونه. کد : [bahman@intel-system ~]$ echo 'in yek mesal baraye barresi mibashad.'>test |
|||
|