از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
” ||” چه می کند منظور داشتن؟ (دولوله) – باش
سرفصلهای مطلب
“||” چیست؟ منظور داشتن؟ (دو لوله)
اپراتور دو لوله اگر هر یک از عبارت ها را درست ارزیابی می کند روی هر دو طرف آن درست است و در غیر این صورت نادرست است. به این معنی که اگر یکی از عبارت ها درست باشد، عبارت دیگر نیازی به ارزیابی ندارد. اگر هر دو عبارت نادرست باشند، عملگر آن را به false ارزیابی می کند، بنابراین در اینجا نحو آن است:
یا جدول حقیقت عملیات | ||
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
نحو برای استفاده از لوله دوبل.
برای نشان دادن بیشتر، من یک اسکریپت bash ایجاد کردهام که بدون دو لوله اجرا میشود و وضعیت خروج را بررسی میکنم تا ببینم آیا این دستور اجرا شده است یا نه، کد زیر آن است:
# تلاش برای حذف یک فایل
rm /خانه/عالیان/bashfile44.sh
اگر [ $? -ne 0 ]; سپس
# دستور قبلی ناموفق بود، بنابراین یک پیام خطا چاپ کنید
اکو “فایل حذف نشد”
دیگر
# دستور قبلی با موفقیت انجام شد، بنابراین یک پیام موفقیت آمیز چاپ کنید
اکو “فایل حذف شد”
فی
در این مثال از دستور rm برای حذف یک فایل استفاده می شود. اگر فایل قابل حذف نباشد یا وجود نداشته باشد، Bash دستور echo را برای چاپ پیام خطا اجرا می کند. برای بررسی وضعیت خروج دستور حذف از دستور if استفاده می شود که در متغیر پوسته ویژه $? ذخیره می شود. اگر وضعیت خروج عدد صفر باشد، در صورتی که دستور ناموفق باشد، پیام خطا به صورت زیر چاپ می شود:
به طور مشابه اگر فایل خارج شود و حذف شود، خروجی به این صورت خواهد بود:
اکنون در اینجا همان اسکریپت bash وجود دارد که فایل را حذف می کند، اما در این اسکریپت، من از اپراتور دو لوله استفاده کرده ام و می توان فهمید که درک و خواندن کد آسان تر شده است:
# سعی کنید یک فایل را حذف کنید و در صورت عدم موفقیت، پیام خطا را چاپ کنید
rm /مسیر/به/فایل || اکو “فایل حذف نشد”
در این کد دستور rm اجرا می شود و در صورت عدم موفقیت دستور echo برای چاپ پیغام خطا اجرا می شود و در صورت خرابی خروجی این اسکریپت است:
حال در اسکریپت اول از دستور if برای بررسی وضعیت خروج از دستور rm استفاده می شود و در صورت عدم موفقیت دستور پیغام خطا چاپ می شود. این رویکرد پیچیده تر است و به خطوط کد بیشتری نیاز دارد. علاوه بر این، ممکن است فراموش کنید که وضعیت خروج یک فرمان را بررسی کنید، که می تواند منجر به اشکالات یا رفتار غیرمنتظره در اسکریپت شما شود.
در حالی که در اسکریپت دوم از “||” استفاده کرده ام. اپراتور برای ساده کردن رسیدگی به خطا. دستور echo فقط در صورتی اجرا می شود که دستور rm از کار بیفتد، زیرا در آن حالت اولین ورودی نادرست است. این رویکرد مختصرتر و خواندن آسانتر است و تضمین میکند که در صورت شکست دستور، پیام خطا همیشه چاپ میشود.
به طور کلی، استفاده از «||» تمرین خوبی است. عملگر در اسکریپت های bash شما برای ساده کردن کد شما و خوانایی بیشتر آن. با این حال، توجه به این نکته مهم است که این اپراتور فقط برای موارد ساده مدیریت خطا کار می کند و در سناریوهای پیچیده تر، ممکن است نیاز به استفاده از تکنیک های پیشرفته تری داشته باشید.
به طور مشابه، اگر فایل حذف شود، اپراتور double pipe شرط دیگر را اجرا نمی کند و فقط در اینجا خاتمه می یابد، اگر یک فایل خروجی وجود داشته باشد، سپس:
نتیجه
“||” اپراتور (double pipe) در Bash یک اپراتور کنترلی مفید است که می تواند اسکریپت های پوسته را با اجازه دادن به اجرای مشروط دستورات مبتنی بر ساده کند. روی موفقیت یا شکست دستورات قبلی این راهنما جزئیات گسترده ای را ارائه می دهد روی این عملگر به چه معناست و چگونه می توان از آن در اسکریپت bash با کمک مثال استفاده کرد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 06:29:04