منبع اصلی نوشتار زیر در این لینک قرار دارد

عملگرهای کنترلی

ادامه یادداشت قبل


راهنمای آموزشی  BashGuide   مؤلف  Lhunath

2. عملگرهای کنترلی (&& و ||)

حال که می‌دانیم کدهای خروج چیستند، و یک کد خروج صفر به معنای اجرای موفق یک دستور می‌باشد، استفاده از این اطلاعات را خواهیم آموخت. ساده‌ترین روش انجام یک عمل معین بر اساس موفقیت دستور قبلی از راه به کارگیری عملگرهای کنترلی می‌باشد. این عملگرها && و || می‌باشند، که به ترتیب یک AND و یک OR منطقی را نمایندگی می‌کنند. این عملگرها بین دو دستور به کار می‌روند، و برای کنترل آنکه آیا دستور دوم بر مبنای موفقیت دستور اول اجرا بشود، استفاده می‌شوند. این مفهوم اجرای شرطی نامیده می‌شود.

بیایید این مطلب را در عمل به کار ببریم:

$ mkdir d && cd d

این مثال ساده دو دستور دارد، mkdir d و cd  d. می‌توانستید از یک سمی‌کالن در آنجا برای جدا کردن دستورهاو اجرای ترتیبی آنها استفاده کنید، اما ما چیزی بیش از آن می‌خواهیم. در مثال فوق، BASH فرمان mkdir d را اجرا می‌کند، سپس && نتیجه برنامه mkdir پس از اتمامش را بررسی می‌کند. اگر برنامه mkdir موفق بود(کد خروج صفر)، بعد Bash دستور بعدی cd d را اجرا می‌کند. اگر mkdir d ناموفق باشد، و یک کد خروج غیر صفر برگرداند، Bash از اجرای دستور بعدی صرفنظر می‌کند، و در دایرکتوری جاری خواهد ماند.

مثالی دیگر:

$ rm /etc/some_file.conf || echo "I couldn\'t remove the file" rm: cannot remove `/etc/some_file.conf\': No such file or directory I couldn\'t remove the file

|| خیلی مشابه && می‌باشد، امادقیقاً مخالف آن عمل می‌کند. فقط موقعی دستور بعدی اجرا می‌شود که دستور اول ناموفق شود. به این ترتیب، پیغام فقط در صورتی که فرمان rm ناموفق باشد، نمایش داده می‌شود.

به طور کلی، متصل کردن چند دستور کنترلی در یک جمله منفرد ایده خوبی نیست(ما این مطلب را در بخش بعدی باز خواهیم کرد). && و || در حالت‌های ساده کاملاً سودمند می‌باشند، اما در وضعیت‌های پیچیده اینطور نیست. در چند بخش بعدی برخی ابزارها که می‌توانید در تصمیم سازی به کار ببرید رانشان خواهیم داد.


  • تکرارمفید:
    وقتی با عبارت‌های شرطی سر و کار دارید خیلی هواخواه این عملگرها نباشید. اینها میتوانند درک اسکریپت شما را دشوار سازند، به ویژه برای کسی که به نگهداری آن منصوب شده و خودش اسکریپت را ننوشته است.



  • عملگرهای کنترل: این عملگرها برای پیوند زدن دستورها با یکدیگر استفاده می‌شوند. آنها کد خروج دستور قبلی را برای تعیین اجرا یا عدم اجرای دستور بعدی بررسی می‌کنند.


ادامه دارد ....