وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش تغییر مسیر stderr به stdout در Bash

0 6
زمان لازم برای مطالعه: 2 دقیقه


دستورات در لینوکس مقداری ورودی از کاربر می گیرند که می تواند یک فایل یا هر ویژگی باشد و پس از اجرا مقداری خروجی به نام خروجی استاندارد می دهد. خروجی استاندارد می تواند یک خروجی موفقیت آمیز یا یک خروجی خطا باشد. هر دو نمایش داده خواهد شد روی شما terminal صفحه نمایش اما در برخی موارد، شما می خواهید خروجی های استاندارد را برای آزمایش یا اشکال زدایی کد در یک فایل ذخیره کنید. در لینوکس، این خروجی ها می توانند به یک فایل هدایت شوند، و process از گرفتن آن redirection نامیده می شود.

روش تغییر مسیر stderr به stdout در Bash

هر process در لینوکس سه جریان داده “stdin”، “stdout” و “stderr” تولید می کند:

  • stdin: ورودی را از طریق صفحه کلید از کاربر می گیرد
  • stdout: خروجی را نمایش می دهد روی صفحه نمایش
  • stderr: اطلاعات خطا را نشان می دهد روی صفحه نمایش

هر جریان داده یک شناسه عددی دارد:

شناسه عددی نام
0 stdin
1 stdout
2 stderr

اجازه دهید تغییر مسیر را کمی بیشتر با جزئیات توضیح دهیم:

روش تغییر مسیر خروجی استاندارد و خطای استاندارد در Bash:

برای تغییر مسیر خروجی استاندارد دستور، از “1” با یک عملگر تغییر مسیر بزرگتر از علامت “>” استفاده می کنیم:

$ls 1> stdout.txt

دستور بالا یک فایل ایجاد می کند و خروجی استاندارد دستور “ls” را در فایل “stdout.txt” قرار می دهد.

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

برای خواندن فایل “stdout.txt” از:

$گربه stdout.txt

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

همچنین می‌توانیم با استفاده از دستور خطای استاندارد را به یک فایل هدایت کنیم:

$گربه myfile.txt 2> stderr.txt

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

برای مشاهده فایل “stderr.txt” از:

$گربه stderr.txt

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

مطمئن شوید که استفاده از “2” بزرگتر از علامت “>” خواهد بود. از آنجایی که فایل “myfile.txt” در دایرکتوری وجود ندارد، دستور “cat” یک خطایی می دهد که در فایل “stderr.txt” اضافه می شود.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از نظرات تک خطی و چند خطی در BASH

این خروجی‌های استاندارد را می‌توان با یک فرمان تغییر مسیر داد، از:

$ls 1> stdout.txt 2> stderr.txt

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

خروجی دستور “ls” در “” نوشته می شود.stdout.txt” فایل، اما ”stderr.txt” خالی خواهد ماند زیرا هیچ خطایی وجود نخواهد داشت.

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

حالا بیایید برای “stderr.txt” این کار را انجام دهیم:

$گربه myfile.txt 1> stdout.txt 2> stderr.txt

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

برای خواندن “stderr.txt” از دستور زیر استفاده کنید.

$گربه stderr.txt

روش تغییر مسیر stderr به stdout در Bashروش تغییر مسیر stderr به stdout در Bash

و البته، “stdout.txt” خالی خواهد بود.

نتیجه:

دستور لینوکس پس از اجرا خروجی استانداردی را می دهد که می تواند یک خروجی موفقیت آمیز یا یک خروجی خطا باشد. به طور کلی، این خروجی ها را نمی توان با استفاده از عملگرهای تغییر مسیر هدایت کرد. باید از شناسه های عددی خاصی با علامت “>” استفاده کنیم. در این راهنما، ما یاد گرفتیم که چگونه از این کلیدهای عددی برای تغییر مسیر خروجی استاندارد به یک فایل همراه با مثال استفاده کنیم.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 01:41:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید