menu

عدم نمایش و ذخیره ی خروجی در لینوکس

عدم نمایش و ذخیره ی خروجی در لینوکس

شنبه 9 خرداد 1394

شاید تا به حال برای شما هم پیش آمده باشه که یک کدی که توی ترمینال توی لینوکس نوشته اید، یا یه قطعه shell script که دارید میخواهید موقع اجرا هیچ خروجی را نمایش ندهد. حالا این خروجی میتونه خروجی استاندارد باشه یا خطای استاندارد...

برای این کار، شاید کاری که در اولین دفعه به ذهنتون برسه ذخیره ی خروجی ها توی یه فایل با استفاده از redirection ها باشه، اما چی میشه اگه بخواهید حتی توی فایل هم ذخیره نشه؟

مطمئنا یکی از مهم ترین کارها وقتی یه کدی کامل نوشته شد، این هست که خروجی ها اضافه (مثل خطا ها) از دید کاربر مخفی بمونه و دور ریخته بشه

برای این کار، میتونید از dev null استفاده کنید!

به همین راحتی!

اما dev null چی هست؟

همونطور که توی ویکیپدیای اون توضیح داده شده، dev null در واقع یه device هست مثل بقیه ی device های توی لینوکس، مثل cdrom و بقیه. با این تفاوت که هر ورودی که به این device داده باشه اون را میریزه دور...

حالا که فهمیدیم از چی باید استفاده کنیم، سوال اینجاس که چجوری ازش استفاده کنیم؟

- به سادگی!

کافیه با استفده از redirection ها (که قبلا توضیح داده شد) خروجی یا خطای استاندارد را توی /dev/null بریزیم. به طور مثال:

//برای عدم نمایش خروجی
mycode > /dev/null

//به طور مثال عدم نمایش خروجی دو تا دستور مثل پینگ و اکو
ping noisy.ir > /dev/null
echo 'hello' > /dev/null

//برای عدم نمایش خطا
mycode 2> /dev/null

//به طور مثال عدم نمایش خطای دوتا دستور مثل پینگ و اکو
ping noisy.ir 2> /dev/null
echo 'hello' 2> /dev/null

 

منتشر شده در:

  • آواتار FATEMEH

    FATEMEH

    سه شنبه 24 شهریور 1394

    ارسال پاسخ

    خیلی جالب بود............ :)
ارسال نظر
خوانا نیست؟تعویض کد