دستور Bash Exit و كد هاي Exit

دستور Bash Exit و كد هاي Exit

زهرا عزتی

در این مقاله ، قصد داريم دستورات  Bash Exit و كدهاي exit را بررسي كنيم . با ما در شتابان هاست همراه باشيد

۱) وضعیت Exit

date &> /dev/null
echo $?
دستور با موفقیت به پایان رسید و کد Exit صفر است:
۰

اگر سعی ميکنید ls در فهرست ديگري وجود داشته باشد ، کد Exit غیر صفر خواهد بود:

 

ls /nonexisting_dir &> /dev/null
echo $?
۲
از کد وضعیت می توان برای یافتن دلیل عدم موفقیت دستور استفاده کرد. صفحه اصلی هر دستور شامل اطلاعات مربوط به کدهای Exit است.
هنگام اجرای خط هاي چند منظوره ، وضعیت خط  Exit  آخرین دستور است:
sudo tcpdump -n -l | tee file.out
echo $?
در مثال بالا echo $؟ کد Exit دستور tee را چاپ می کند.

دستور Bash Exit

دستور Bash Exit پوسته با وضعیت N خارج می شود. این ترکیب دارای موارد زیر است:

exit N

اگر N تايپ نشود ، کد وضعیت Exit آخرین دستور را اجرا ميكند.
هنگامی که اسکریپت های پوسته استفاده شد ، مقدار ارائه شده به عنوان آرگومان برای دستور Exit به عنوان کد خروجی به پوسته باز می گردد.

مثال

ا. در مثال زیر در صورت یافتن “search-string” در نام پرونده ، grep با صفر (که به معنای واقعی در اسکریپت نویسی پوسته است) خواهد بود:

if grep -q "search-string" filename then
echo "String found."
else
echo "String not found."
fi
هنگام اجرای لیستی از دستورات جدا شده توسط && (AND) یا || (OR) ، وضعیت Exit دستور تعیین می کند که آیا دستور بعدی در لیست اجرا خواهد شد یا خیر. در اینجا ، دستور mkdir فقط در صورت بازگشت C D صفر اجرا می شود:
cd /opt/code && mkdir project
اگر یک اسکریپت بدون مشخص کردن پارامتر و دستور Bash Exit و كد هاي Exit به پایان برسد ، کد خروجی اسکریپت ، آخرین دستور اجرا شده در اسکریپت است.
#!/bin/bash
echo "doing stuff..."
exit


در اینجا مثالی وجود دارد که نشان می دهد در صورتي كه فراخوانی توسط کاربر غیر root بود، اسکریپت را خاتمه دهید:

#!/bin/bash

if [[ "$(whoami)" != root ]]; then
echo "Only user root can run this script."
exit 1
fi

echo "doing stuff..."
exit 0
اگر اسکریپت را به صورت root اجرا کنید ، کد خروجی صفر خواهد بود. در غیر این صورت ، سند دستورات با وضعیت ۱ خارج می شود.
هر دستور پوسته ، هنگام اتمام کد خروجی را برمی گرداند. exitدستور برای خروج از پوسته ، از وضعیت مشخصي استفاده می كند.
 ما را در شتابان هاست دنبال كنيد.

ارسال دیدگاه جدید