آشنایی با نحوهٔ Return کردن مقادیر در Shell

آشنایی با نحوهٔ Return کردن مقادیر در Shell

تمامی اسکریپت‌های Shell پس از پایان اجرا، Value (مقداری) را اصطلاحاً return (بازگرداندن) می‌کنند؛ در پاسخ به این سؤال که مقادر بازگشتی (Return Values) به چه دردی می‌خورند بایستی گفت که اگر شرایطی داشته باشیم که در آن یک رابطهٔ Parent-Child (پدر و فرزندی) وجود داشته باشد، می‌توان فهمید که یک اسکریپت چه زمانی تکمیل شده تا بر آن اساس بتوان اسکریپت دیگری را اجرا کرد:

به‌عبارت دیگر، پس از اجرای یک اسکرپیت می‌توان بررسی کرد و دید که آیا شرط لازم ایجاد شده است یا خیر و بر آن اساس تصمیمی دیگری اتخاذ کرد

به خاطر داشته باشید مرسوم است که پیام موفقیت با ۰ نشان داده شده و خطا هم با هر مقداری به جز ۰ نمایش داده می‌شود که این عدد در یک متغیر محیطی (Environment Variable) تحت‌عنوان ?$ ذخیره می‌شود.

برای روشن‌تر شدن این مسأله مثالی می‌زنیم؛ دستور ls /etc/passwd را در ترمینال وارد می‌کنیم و در پاسخ etc/passwd/ نمایش داده می‌شود چراکه سیستم باموفقیت توانسته این فایل را بیابد و مقدار ۰ را به‌عنوان پیام موفقیت‌ صادر می‌کند که همیشه در متغیری تحت‌عنوان ?$ ذخیره می‌شود که بااستفاده از دستور echo می‌توان آن را روی صفحه چاپ کرد:

$ echo $?
0

حال صرفاً جهت تست کردن این موضوع، دستور زیر را در ترمینال وارد می‌کنیم:

$ ls /etc/passwd2
ls: cannot access '/etc/passwd2': No such file or directory

درواقع، از آنجا که ما هیچ فایلی تحت‌عنوان passwd2 روی سیستم خود نداریم، می‌بینیم که پیامی صادر می‌شود که چنین فایلی یافت نشد؛ حال اگر بخواهیم ببینیم که اکنون چه مقداری در متغیر ?$ ذخیره شده است، مجدد دستور ?$ echo را در ترمینال وارد می‌کنیم:

$ echo $?
2

همان‌طورکه پیش از این گفتیم، هر زمانی که اجرای کامند باموفقیت همراه نباشد، عددی به غیر از ۰ درنظر گرفته خواهد شد که در اینجا عدد ۲ است.

11-1
درآمدی بر اسکریپت‌نویسی در محیط لینوکس
بهزاد مرادی
۱۳۹۶/۰۵/۰۸
11-2
معرفی اسکرپیت‌نویسی در محیط Shell
بهزاد مرادی
۱۳۹۶/۰۵/۰۸
11-3
شروع اسکریپت‌نویسی با Bash
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-4
آشنایی با نحوهٔ Return کردن مقادیر در Shell
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-5
لیست کاراکترهای خاص برای اکسریپت‌نویسی در Bash
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-6
آشنایی با مفهوم Redirection ورودی‌ها و خروجی‌ها در اسکرپیت‌نویسی Shell
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-7
کامندهای از پیش تعریف شدهٔ Shell
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-8
آشنایی با پارامترهای اسکریپتی
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-9
جایگزینی کامندها در اسکریپت‌نویسی Shell
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-10
درآمدی بر Environment Variables در لینوکس
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-11
آشنایی با مفهوم فانکشن در اسکریپت‌نویسی Shell
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-12
آشنایی با نحوهٔ استفاده از دستورات شرطی در اسکریپت‌نویسی
بهزاد مرادی
۱۳۹۶/۰۵/۰۹
11-13
درآمد بر اکسپرشن‌های ریاضیاتی در اسکریپت‌نویسی Shell در لینوکس
بهزاد مرادی
۱۳۹۶/۰۵/۱۰
11-14
کار با String در اسکریپت‌نویسی لینوکس
بهزاد مرادی
۱۳۹۶/۰۶/۱۶
11-15
نحوهٔ استفاده از دستور case در اسکریپت‌نویسی شل
بهزاد مرادی
۱۳۹۶/۰۶/۱۸
11-16
آشنایی با نحوهٔ به‌کارگیری از Loop در اسکریپت‌نویسی بش
بهزاد مرادی
۱۳۹۶/۰۶/۱۹
11-17
آشنایی با فرایند دیباگینگ اسکریپت‌های شل
بهزاد مرادی
۱۳۹۶/۰۶/۲۰
rocket
نظرات
اگر login نکردی برامون ایمیلت رو بنویس: