از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه می توانم استدلال را در یک اسکریپت Bash پاس کنم؟
سرفصلهای مطلب
اکثر کاربران لینوکس مینت 20 هنگام ارائه یک آرگومان در a گیر می کنند bash اسکریپت شما می توانید آرگومان ها را به هر کدام منتقل کنید bash اسکریپت زمانی که اجرا می شود. چندین راه ساده و مفید برای ارسال آرگومان ها در a وجود دارد bash اسکریپت در این راهنمای مقاله، ما به شما در مورد برخی از راههای بسیار آسان برای عبور و استفاده از استدلال در خود آگاه میکنیم bash اسکریپت ها
تصویب آرگومان ها با استفاده از متغیرهای پیش فرض:
یک فایل جدید با هر نامی با استفاده از دستور “touch” ایجاد کنید، به عنوان مثال، “file.sh”.
این فایل تازه ایجاد شده را باز کنید و تعدادی اضافه کنید bash اسکریپت به آن من برخی از متغیرهای پیش فرض را اضافه کرده ام، به عنوان مثال “$1″، “$2″، و “$3” در نتیجه. هر استدلالی که از طریق آن منتقل خواهد شد terminal در متغیرهای ذکر شده ذخیره خواهد شد.
شما باید این فایل را با استفاده از دستور “./” و به دنبال آن چند آرگومان اجرا کنید. همانطور که در تصویر می بینید که وقتی آرگومان ها را پاس کردم، یک خطا رخ می دهد: Permission denied. دلیلش این است که این فایل حقوق اجرایی ندارد.
بنابراین برای اعطای حقوق اجرایی به این فایل، از دستور sudo “chmod” برای این کار استفاده کنید.
حالا دوباره با استفاده از دستور بالا فایل را اجرا کنید. این بار استدلال های مختلفی ارائه کرده ام. مشاهده خواهید کرد که آرگومان های تازه تصویب شده در متغیرهای پیش فرض ذخیره می شوند.
عبور نام اسکریپت پوسته به عنوان آرگومان:
حالا با استفاده از همان فایل قدیمی “file.sh” با کمی تغییر در متغیرهای پیش فرض آن. همانطور که نشان داده شده است باید متغیر “$0” را در اسکریپت اضافه کنید.
با اجرای همان دستور اسکریپت پوسته “./”، نام اسکریپت پوسته شما، به عنوان مثال “./filename” در متغیر “$0” به عنوان آرگومان ذخیره می شود.
انتقال آرگومان ها به عنوان آرایه به متغیر:
با شروع با همان فایل “file.sh”، باید چند خط اضافی در اسکریپت قدیمی اضافه کنید. متغیری به نام آرایه را اعلام کنید. یک متغیر پیش فرض “$@” اضافه کنید که آرگومان های وارد شده توسط کاربر را به عنوان یک آرایه ذخیره می کند. این آرگومان ها به متغیر “array” تجزیه خواهند شد. خط آخر تمام آرگومان های متغیر “آرایه” را که بر اساس شماره شاخص مرتب شده اند نمایش می دهد.
اسکریپت پوسته “./” را اجرا کنید. خواهید دید که آرگومان ها یا مقادیر ذخیره شده به عنوان یک آرایه در “$@” تجزیه شده به متغیر “array” را نمایش می دهد، اما نام اسکریپت پوسته را در ” دوم نشان نمی دهد.echo” بیانیه. خروجی زیر را خواهید داشت.
از همان فایل با همان اسکریپت استفاده کنید. فقط آرایه ${را حذف کنید[3]}” از خط آخر به وضوح در تصویر.
پس از اجرای دستور “./” خروجی مشابهی را که در مثال بالا دریافت کردید بدون تغییر خواهید دید.
همچنین می توانید با جایگزین کردن آخرین خط از همان نتیجه را دریافت کنید bash فیلمنامه با یک کلمه شما فقط باید “$@” را در آن اضافه کنید echo بیانیه، و آرگومان های موجود در این آرایه متغیر را نمایش می دهد.
بنابراین با اجرای دوباره دستور “./”، همان نتایج را خواهید گرفت.
تعداد کل آرگومان های پاس شده را بررسی کنید:
برعکس، اگر می خواهید تعداد کل آرگومان های ارسال شده توسط کاربر را بدانید، می توانید این کار را نیز انجام دهید. برای این منظور، فقط باید «$@» را با «$#» در «» جایگزین کنید.echo”.
دوباره با اجرای دستور “./”، اکنون کل آرگومان های ارسال شده به اسکریپت را خواهید دید. در مورد ما، 3 آرگومان به عنوان مقدار ارسال می شود.
ایجاد خط به خط خروجی آرگومان ها:
یک فایل جدید “test.sh” در فهرست اصلی ایجاد کنید. اضافه کردن bash اسکریپت همانطور که نشان داده شده است.
حالا همان دستور قدیمی را با آرگومان های مختلف اجرا کنید. ابتدا خطا را مشاهده خواهید کرد: Permission denied.
برای اعطای امتیازات sudo به این فایل باید دستور “chmod” را اجرا کنید. پس از آن، دوباره فرمان پوسته اسکریپت “./” را اجرا کنید. و شما خط به خط خروجی آرگومان های مرتب شده را دریافت خواهید کرد.
محدود کردن متغیر از طریق Argument Index Number:
اگر می خواهید متغیر را با استفاده از شماره شاخص آن محدود کنید، می توانید این کار را خیلی راحت انجام دهید. بعد از علامت «$» براکتهای فرفری اضافه کنید و شماره شاخص آرگومان را که میخواهید قبل از آرگومانهای دیگر نمایش دهید، اضافه کنید.
اگر آرگومان های ارائه شده توسط کاربران کمتر از عدد شاخص ارائه شده در متغیر حد باشد، یک مقدار آرگومان خالی دریافت خواهید کرد. به عنوان نمونه، من 4 آرگومان ارائه کرده ام، اما مقدار آرگومان “05” را برای نمایش داده ام. در این شرایط متغیر خالی نمایش داده می شود زیرا آرگومان پنجم ارسال نشده است.
اما وقتی تعداد آرگومان های مساوی یا بیشتر را در دستور ارسال کنید، مقداری را که در نتیجه نشان داده شده است، دریافت خواهید کرد.
بررسی آرگومان های ارزش خاص:
یک فایل جدید با نام “Check.sh” در فهرست اصلی خود ایجاد کنید. همان را اضافه کنید bash اسکریپت همانطور که در تصویر زیر نشان داده شده است. در این اسکریپت، ما یک متغیر Var برای ذخیره مقدار آرگومان ارسال شده توسط کاربر داریم. سپس یک عبارت “if” داریم که بررسی می کند که آیا مقدار آرگومان مطابقت دارد یا خیر. اگر مقدار آرگومان با مقدار ارائه شده در پرانتز مطابقت داشته باشد، اولین “echoبیانیه اجرا خواهد شد. اگر مقدار مطابقت نداشت، دومی “echoبیانیه اجرا خواهد شد.
وقتی دستور shell script را اجرا می کنیم، با خطا مواجه می شود. با استفاده از دستور “chmod” می توانیم این خطا را اصلاح کنیم.
پس از آن، اسکریپت پوسته را برای فایل خاص با مقداری آرگومان اجرا کنید. در مورد ما، “اقسا” را به عنوان یک مقدار آرگومان ارائه کرده ایم که همان مقدار نمایش داده شده در پرانتز است. بنابراین bash اسکریپت اول را اجرا خواهد کردecho” بیانیه همانطور که نشان داده شده است.
از سوی دیگر، اگر مقادیر آرگومان های مختلف را در اسکریپت پوسته ارائه کنید، “دیگر” را نمایش می دهد.echo” بیانیه. در اینجا من “Rimsha” را به عنوان یک مقدار آرگومان اضافه کرده ام که با مقدار ارائه شده در دستور if متفاوت است. بنابراین bash اسکریپت دوم را اجرا خواهد کردecho” بیانیه.
نتیجه:
من امیدوارم که این راهنما به اندازه کافی به شما کمک کرده باشد تا یک چنگال قوی داشته باشید روی روش ارسال آرگومان ها به متغیرهای پیش فرض، ارسال مقدار آرگومان به عنوان یک آرایه به یک متغیر، دریافت تعداد کل آرگومان های ارسال شده، خط به خط خروجی آرگومان ها، محدود کردن خروجی آرگومان با استفاده از شماره شاخص، بررسی آرگومان مقدار خاص و بسیاری موارد دیگر.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 05:59:03