از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تغییر مسیر stderr با استفاده از دستور tee در اوبونتو
سرفصلهای مطلب
دستور tee ورودی استاندارد را می گیرد و به یک یا چند فایل و خروجی استاندارد می فرستد. دستور tee از لوله T-splitter مشتق شده است. به سادگی خروجی یک برنامه را تجزیه می کند تا بتوان آن را در یک فایل نشان داد و ذخیره کرد. هر دو کار را به طور همزمان انجام می دهد، خروجی را در فایل ها یا متغیرهای داده شده کپی می کند و خروجی را نمایش می دهد.
نحو:
گزینه ها:
- -آ: افزودن (به جای بازنویسی فایل ها، آنها را به فایل های موجود اضافه کنید)
- -من: وقفه ها را نادیده بگیرید (سیگنال هایی که قطع می کنند را نادیده بگیرید)
فایل ها: چندین فایل وجود دارد. داده های خروجی برای هر کدام از آنها نوشته می شود.
توصیفگر فایل پیش فرض برای process پیام های خطای نوشتن stderr است که اغلب به عنوان خطای استاندارد شناخته می شود. خطاهای استاندارد را می توان به خط فرمان در Bash ارسال کرد. این مقاله در مورد تغییر مسیر خروجی از stderr با استفاده از دستور tee در سناریوهای مختلف است.
تغییر مسیر stderr با استفاده از دستور tee
خطاهای استاندارد به خط فرمان در Bash ارسال می شوند. تغییر مسیر stderr ممکن است به شما امکان دهد پیام های خطا را در یک فایل گزارش مجزا ضبط کنید یا پیام های خطا را به طور کامل حذف کنید. ما روش تغییر مسیر stderr را با استفاده از دستور tee با مثال های زیر توضیح خواهیم داد.
مرحله 1: یک فایل Bash ایجاد کنید
ابتدا با استفاده از دستور زیر یک فایل Bash “linux.sh” ایجاد کنید:
مرحله 2: کد را بنویسید
حالا کد زیر را در فایل بنویسید یا می توانید با توجه به نیاز خود چیز دیگری بنویسید:
اکو سلام
1>&2 اکو جهان
مرحله 3: بررسی کنید که آیا فایل Bash کار می کند یا خیر
اکنون با اجرای دستور زیر در فایل Bash بررسی کنید که آیا فایل Bash به درستی کار می کند یا کد نوشته شده در آن صحیح است. terminal:
نتیجه داده شده نتیجه صحیح را به دست می دهد، که ثابت می کند کد به درستی کار می کند.
دستور دیگری که در زیر ذکر شده را اجرا کنید تا کد کار را بررسی کنید:
اکنون برای بررسی عملکرد کد دستور زیر را اجرا کنید:
ما خروجی مورد انتظار را گرفتیم. یعنی کد درسته
مرحله 4: stderr را به دستور tee هدایت کنید
>(…) (process جایگزینی) یک FIFO ایجاد می کند و آن را برای گوش دادن در دسترس تی قرار می دهد. سپس، از > (تغییر مسیر فایل) استفاده می کند تا STDOUT فرمان را به FIFO ارسال کند که اولین سه راهی شما در حال نظارت است.
دستور زیر stderr را به سه راه هدایت می کند. خروجی را به “/tmp/log” هدایت می کند:
اکنون فایلی را که خروجی را به آن هدایت کرده ایم، خروجی بگیرید.
به طور پیش فرض، سه راهی به STDOUT چاپ می شود. این را در STDERR چاپ کنید.
نتیجه
دستور tee داده ها را از یک فایل/فایل ورودی می خواند و خروجی دریافتی را در بسیاری از فایل ها می نویسد. تغییر مسیر خطاها به stderr را می توان با کمک دستور tee انجام داد. راه های زیادی برای تغییر مسیر خروجی وجود دارد. اما در این مقاله روشی را با کمک یک مثال توضیح دادیم تا stderr را با استفاده از فایل Bash به سه راه هدایت کنیم و خروجی را نمایش دهیم. روی اوبونتو (سیستم عامل لینوکس). این مقاله برای هدایت مجدد stderr با استفاده از دستور tee مفید خواهد بود.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 13:41:04