آشنایی با نحوهٔ 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
آشنایی با فرایند دیباگینگ اسکریپت‌های شل
بهزاد مرادی