از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از Stdin، Stderr، و Stdout Streams در Bash
سرفصلهای مطلب
با شروع سیستم عامل لینوکس، سه جریان باز می شود. اینها stdin، stdout و stderr هستند. شکل کامل stdin یک ورودی استاندارد است که برای گرفتن ورودی از کاربر استفاده می شود. شکل کامل stdout خروجی استانداردی است که برای ذخیره خروجی دستور در جریان stdout استفاده می شود. شکل کامل stderr خطای استانداردی است که برای ذخیره پیام خطای تولید شده از هر دستوری در جریان داده استفاده می شود. موارد استفاده از این جریان ها در این آموزش نشان داده شده است. مقادیر شناسه عددی مربوط به stdin، stdout و stderr 0، 1 و 2 هستند.
اپراتورهای تغییر مسیر Stdin، Stdout و Stderr
-
- “<" یا "0<" برای جریان stdin استفاده می شود.
- “>” یا “1>” برای جریان stdout استفاده می شود.
- “2” برای جریان stderr استفاده می شود.
موارد استفاده از Stdin، Stdout و Stderr
کاربردهای stdin، stdout و stderr در این قسمت از آموزش با استفاده از چندین مثال نشان داده شده است.
مثال 1: استفاده از Stdin
روش گرفتن محتوای یک فایل و چاپ آن در terminal در این مثال نشان داده شده است.
دستور «cat» زیر را برای ایجاد یک فایل متنی به نام testdata.txt با مقداری محتوا اجرا کنید:
دستور «cat» زیر را برای اضافه کردن مقداری محتوا به فایل testdata.txt اجرا کنید:
دستور «cat» زیر را اجرا کنید تا یک ورودی از فایل testdata.txt گرفته و آن را در فایل چاپ کنید. terminal:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی پس از افزودن رشته، “linuzhint.com” و “Scripting Language” به فایل testdata.txt ظاهر می شود:
مثال 2: استفاده از Stdout
روش ایجاد فایل با استفاده از لوله (|) و عملگر تغییر مسیر در این مثال نشان داده شده است.
دستور زیر را اجرا کنید تا یک داده رشته ای در فایل متنی به نام testdata2.txt با لوله گذاری بنویسید. خروجی دستور “echo” با استفاده از عملگر pipe (|) به ورودی دستور “cat” ارسال می شود:
دستور cat زیر را برای بررسی محتوای فایل testdata2.txt اجرا کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود. با توجه به خروجی، خروجی دستور “echo” در فایل testdata2.txt نوشته می شود:
دستور زیر را اجرا کنید تا با استفاده از عملگر تغییر مسیر (‘>’) خروجی دستور “ls –l” را در یک فایل متنی به نام list.txt بنویسید:
برای بررسی محتوای فایل list.txt دستور «cat» زیر را اجرا کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود. با توجه به خروجی، خروجی دستور “ls –l” در فایل list.txt نوشته می شود:
مثال 3: استفاده از Stdin و Stdout
روش استفاده از stdin و stdout برای گرفتن ورودی از یک فایل و نوشتن آن در یک فایل در این مثال نشان داده شده است.
دستور «cat» زیر را اجرا کنید تا محتوای فایل testdata.txt را گرفته و در فایل testfile.txt بنویسید. terminal:
دستور Cat زیر را برای چاپ محتوای فایل testdata.txt اجرا کنید:
دستور cat زیر را برای چاپ محتوای فایل testfile.txt اجرا کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود. با توجه به خروجی، محتوای فایل testdata.txt در فایل testfile.txt نوشته شده و در terminal:
مثال 4: استفاده از Stderr
محتوای خطای استاندارد را می توان در آن چاپ کرد terminal یا به یک فایل هدایت می شود یا به /dev/null که مانند سطل بازیافت کار می کند ارسال می شود. راه های مختلف برای عبور از خطای استاندارد در این مثال نشان داده شده است.
دستور زیر معتبر است و رشته “Hello” را با خط جدید چاپ می کند. بنابراین، هیچ خطای استانداردی برای دستور زیر ایجاد نمی شود:
دستور زیر نامعتبر است زیرا دستوری با نام “pirntf” وجود ندارد. بنابراین، یک خطای استاندارد ایجاد می شود و خطا در آن چاپ می شود terminal:
خروجی:
خروجی زیر پس از اجرای دستور قبلی ظاهر می شود. با توجه به خروجی، خطای استاندارد در چاپ شده است terminal:
گاهی اوقات، نیاز به چاپ خطای سفارشی با پنهان کردن خطای استاندارد دارد تا خطا برای کاربران قابل درک تر شود. این کار را می توان با تغییر مسیر خطا به /dev/null انجام داد. “2>” در اینجا برای تغییر مسیر خطا به /dev/null استفاده می شود.
دستور زیر را اجرا کنید تا خطا را به /dev/null هدایت کنید که در صورت وجود خطایی هیچ خطایی نمایش داده نمی شود:
خروجی:
خروجی زیر پس از اجرای دستور قبلی ظاهر می شود. با توجه به خروجی، خطای استاندارد در چاپ نشده است terminal برای تغییر مسیر به /dev/null:
گاهی اوقات، خطای استاندارد نیاز به ذخیره در یک فایل برای استفاده در آینده دارد. این کار را می توان با هدایت کردن خطا به یک فایل با استفاده از عملگر “2>” انجام داد.
دستور زیر را برای تغییر مسیر خطای استاندارد به فایلی به نام errorfile.txt اجرا کنید:
برای بررسی محتوای فایل errorfile.txt دستور زیر را اجرا کنید:
خروجی:
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود. با توجه به خروجی، خطای استاندارد به درستی در فایل errorfile.txt نوشته می شود:
خطای استاندارد را می توان با استفاده از دستور زیر به هر دو /dev/null و فایل errorfile.txt هدایت کرد:
نتیجه
کاربردهای stdin، stdout و stderr در این آموزش با استفاده از مثالهای متعدد توضیح داده شده است که به کاربران لینوکس کمک میکند تا مفهوم این جریانها را درک کنند و در صورت لزوم از آنها به درستی استفاده کنند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 10:32:05