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

سرور مجازی NVMe

” ||” چه می کند منظور داشتن؟ (دولوله) – باش

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


لوله دوبل (“||”) یک عملگر کنترلی است که عملیات OR منطقی را نشان می دهد. فقط در صورتی که دستور یا خط لوله قبلی شکست خورده باشد یا کد وضعیت غیر صفر را برگردانده باشد، برای اجرای یک دستور یا یک سری دستورات استفاده می شود. این راهنما در مورد استفاده از این دو لوله و روش استفاده از آن در اسکریپت نویسی bash بحث خواهد کرد، بنابراین اگر علاقه دارید این راهنما را بخوانید.

“||” چیست؟ منظور داشتن؟ (دو لوله)

اپراتور دو لوله اگر هر یک از عبارت ها را درست ارزیابی می کند روی هر دو طرف آن درست است و در غیر این صورت نادرست است. به این معنی که اگر یکی از عبارت ها درست باشد، عبارت دیگر نیازی به ارزیابی ندارد. اگر هر دو عبارت نادرست باشند، عملگر آن را به false ارزیابی می کند، بنابراین در اینجا نحو آن است:

یا جدول حقیقت عملیات
0 0 0
0 1 1
1 0 1
1 1 1

نحو برای استفاده از لوله دوبل.

<فرمان 1> || <فرمان 2>

برای نشان دادن بیشتر، من یک اسکریپت bash ایجاد کرده‌ام که بدون دو لوله اجرا می‌شود و وضعیت خروج را بررسی می‌کنم تا ببینم آیا این دستور اجرا شده است یا نه، کد زیر آن است:

#!/bin/bash

# تلاش برای حذف یک فایل
rm /خانه/عالیان/bashfile44.sh

اگر [ $? -ne 0 ]; سپس

# دستور قبلی ناموفق بود، بنابراین یک پیام خطا چاپ کنید

اکو “فایل حذف نشد”
دیگر

# دستور قبلی با موفقیت انجام شد، بنابراین یک پیام موفقیت آمیز چاپ کنید

اکو “فایل حذف شد”
فی

در این مثال از دستور rm برای حذف یک فایل استفاده می شود. اگر فایل قابل حذف نباشد یا وجود نداشته باشد، Bash دستور echo را برای چاپ پیام خطا اجرا می کند. برای بررسی وضعیت خروج دستور حذف از دستور if استفاده می شود که در متغیر پوسته ویژه $? ذخیره می شود. اگر وضعیت خروج عدد صفر باشد، در صورتی که دستور ناموفق باشد، پیام خطا به صورت زیر چاپ می شود:

پیشنهاد می‌کنیم بخوانید:  حل مشکل: تعویض بد Bash

" ||" چه می کند منظور داشتن؟ (دولوله) – باش

به طور مشابه اگر فایل خارج شود و حذف شود، خروجی به این صورت خواهد بود:

" ||" چه می کند منظور داشتن؟ (دولوله) – باش" ||" چه می کند منظور داشتن؟ (دولوله) – باش

اکنون در اینجا همان اسکریپت bash وجود دارد که فایل را حذف می کند، اما در این اسکریپت، من از اپراتور دو لوله استفاده کرده ام و می توان فهمید که درک و خواندن کد آسان تر شده است:

#!/bin/bash

# سعی کنید یک فایل را حذف کنید و در صورت عدم موفقیت، پیام خطا را چاپ کنید
rm /مسیر/به/فایل || اکو “فایل حذف نشد”

در این کد دستور rm اجرا می شود و در صورت عدم موفقیت دستور echo برای چاپ پیغام خطا اجرا می شود و در صورت خرابی خروجی این اسکریپت است:

" ||" چه می کند منظور داشتن؟ (دولوله) – باش" ||" چه می کند منظور داشتن؟ (دولوله) – باش

حال در اسکریپت اول از دستور if برای بررسی وضعیت خروج از دستور rm استفاده می شود و در صورت عدم موفقیت دستور پیغام خطا چاپ می شود. این رویکرد پیچیده تر است و به خطوط کد بیشتری نیاز دارد. علاوه بر این، ممکن است فراموش کنید که وضعیت خروج یک فرمان را بررسی کنید، که می تواند منجر به اشکالات یا رفتار غیرمنتظره در اسکریپت شما شود.

در حالی که در اسکریپت دوم از “||” استفاده کرده ام. اپراتور برای ساده کردن رسیدگی به خطا. دستور echo فقط در صورتی اجرا می شود که دستور rm از کار بیفتد، زیرا در آن حالت اولین ورودی نادرست است. این رویکرد مختصرتر و خواندن آسان‌تر است و تضمین می‌کند که در صورت شکست دستور، پیام خطا همیشه چاپ می‌شود.

به طور کلی، استفاده از «||» تمرین خوبی است. عملگر در اسکریپت های bash شما برای ساده کردن کد شما و خوانایی بیشتر آن. با این حال، توجه به این نکته مهم است که این اپراتور فقط برای موارد ساده مدیریت خطا کار می کند و در سناریوهای پیچیده تر، ممکن است نیاز به استفاده از تکنیک های پیشرفته تری داشته باشید.

پیشنهاد می‌کنیم بخوانید:  روش جایگزینی آخرین رخداد با استفاده از `sed`

به طور مشابه، اگر فایل حذف شود، اپراتور double pipe شرط دیگر را اجرا نمی کند و فقط در اینجا خاتمه می یابد، اگر یک فایل خروجی وجود داشته باشد، سپس:

" ||" چه می کند منظور داشتن؟ (دولوله) – باش" ||" چه می کند منظور داشتن؟ (دولوله) – باش

نتیجه

“||” اپراتور (double pipe) در Bash یک اپراتور کنترلی مفید است که می تواند اسکریپت های پوسته را با اجازه دادن به اجرای مشروط دستورات مبتنی بر ساده کند. روی موفقیت یا شکست دستورات قبلی این راهنما جزئیات گسترده ای را ارائه می دهد روی این عملگر به چه معناست و چگونه می توان از آن در اسکریپت bash با کمک مثال استفاده کرد.

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

زمان انتشار: 1402-12-29 06:29:04

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

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

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