وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

استفاده از دستور “shift” در bash

0 2
زمان لازم برای مطالعه: 4 دقیقه


وقتی که command-line آرگومان ها ورودی ها را از کاربر می گیرند، آرگومان اول حاوی نام اسکریپت است. گاهی اوقات نام اسکریپت برای اهداف برنامه نویسی حذف می شود. این کار را می توان به راحتی با استفاده از هر حلقه در انجام داد bash. با استفاده از `تغییر مکاندستور ` راه دیگری برای انجام کار است. این دستور به طور پیش فرض برای انتقال یک پارامتر موقعیتی به سمت چپ استفاده می شود. استفاده های مختلف از `تغییر مکاندستور در bash در این آموزش نشان داده اند.

نحو:

دستور “shift” در زیر آورده شده است. این دستور یک آرگومان اختیاری دارد که برای تنظیم تعداد موقعیت هایی که به سمت چپ منتقل می شوند استفاده می شود. استدلال باید مثبت باشد. اگر مقدار آرگومان روی 0 تنظیم شود، خیر command-line استدلال تغییر خواهد کرد. اگر از هیچ آرگومانی استفاده نشد، یکی command-line آرگومان به طور پیش فرض جابجا خواهد شد.

تغییر مکان [n]

مثال-1: همه را چاپ کنید command-line مقادیر آرگومان

ایجاد یک bash فایل با اسکریپت زیر به print آرگومان خط فرمان با استفاده از حلقه “for” بدون دستور “shift” و حلقه “while” با دستور “shift” ارزش گذاری می کند. هر مقدار آرگومان در متغیر the ذخیره می شود ارزش وقتی که برای حلقه اجرا می شود و این متغیر بعدا چاپ می شود. را شروع کنید از متغیر استفاده شده است در حالی که حلقه برای خواندن هر مقدار آرگومان با استفاده از `تغییر مکانفرمان و خاتمه حلقه زمانی که همه command-line آرگومان ها چاپ می شوند. یک متغیر شمارنده، من، در اسکریپت برای نمایش تعداد آرگومان استفاده شده است. اگر نه command-line آرگومان در زمان اجرا داده می شود، سپس یک رشته خالی برای آرگومان اول تنظیم می شود و چیزی چاپ نمی شود.

#!/صندوقچه/bash
#چاپ کنید command-line مقادیر aegument با استفاده از حلقه for و while
# پیشخوان را تنظیم کنید
من=1
echo “آگومان بدون دستور shift مقادیر می شود:”
#تکرار همه مقادیر با استفاده از حلقه for
برای ارزش که در“$@”
انجام دادن

پیشنهاد می‌کنیم بخوانید:  روش درک و اجرای عبارات منظم Bash

echo «استدلال شماره. $i = ارزش دلار

((i++))
انجام شده

شمارنده را #دوباره مقدار دهی اولیه کنید
من=1
#آگومان اختیاری را تنظیم کنید
شروع کنید=${1:-“”}

echo آرگومان با استفاده از دستور shift ارزش گذاری می کند:
#تکرار همه مقادیر با استفاده از حلقه while
در حالی که [ $start != “” ];
انجام دادن

echo «استدلال شماره. $i = شروع $

#هر آرگومان را با 1 تغییر دهید

تغییر مکان

شروع کنید=1 دلار

((i++))
انجام شده

خروجی:

با توجه به خروجی زیر اسکریپت فوق با سه اجرا شده است command-line مقادیر آرگومان مقادیر آرگومان دو بار با استفاده از حلقه for و حلقه while با ` چاپ می شوندتغییر مکاندستور.

استفاده از دستور "shift" در bash

مثال-2: مقادیر آرگومان موقعیت زوج را چاپ کنید

در مثال قبلی، هیچ آرگومانی با ` استفاده نشده استتغییر مکاندستور `، و مقدار آرگومان با 1 به چپ منتقل شد. استفاده از آرگومان اختیاری «تغییر مکاندستور ` در این مثال نشان داده شده است. ایجاد یک bash فایل با اسکریپت زیر به print مقادیر آرگومان خط فرمان موقعیت زوج. تعداد کل command-line آرگومان ها در متغیر شمارش و ذخیره شده اند جمع، و از آن در در حالی که حلقه برای تکرار حلقه. «تغییر مکاندستور ` با مقدار آرگومان 2 برای تغییر دو استفاده شده است command-line آرگومان ها در هر تکرار حلقه هر یک command-line آرگومان موقعیت های زوج پس از اجرای اسکریپت با فاصله چاپ می شود.

#!/صندوقچه/bash

#تعداد کل را بشمار command-line استدلال ها
جمع=$#
echo “کل استدلال ها عبارتند از: $ مجموع

echo “مقادیر آرگومان موقعیت زوج عبارتند از:”
در حالی که [ $total -ge0 ];
انجام دادن
#مقدار آرگومان را با فاصله چاپ کنید
echo -n 1 دلار “”
#تغییر دو آرگومان
تغییر مکان 2
شمارنده را 2 عدد کاهش دهید
((جمع=$ مجموع2))
انجام شده

#افزودن خط جدید
echo

خروجی:

با توجه به خروجی زیر، اسکریپت فوق شش اجرا شد command-line مقادیر آرگومان بدون نام اسکریپت. پس از چاپ مقدار 89، مقدار بعدی موقعیت زوج برابر 34 و مقدار بعدی موقعیت زوج برابر با 12 است.

استفاده از دستور "shift" در bashاستفاده از دستور "shift" در bash

مثال-3: مقادیر خاص آرگومان های خاص را بخوانید

روشی برای خواندن مقادیر آرگومان خط فرمان خاص با استفاده از `تغییر مکاندستور بدون استفاده از حلقه در این مثال نشان داده شده است. ایجاد یک bash فایل با اسکریپت زیر تعداد کل command-line آرگومان ها در اسکریپت شمارش شده است و اگر مقدار کل کمتر از 6 باشد، اسکریپت با نمایش یک پیغام خطا خاتمه می یابد. اگر شش command-line آرگومان ها به درستی داده می شوند، آرگومان دوم حاوی نام میزبان، آرگومان چهارم شامل نام کاربری و آرگومان ششم حاوی رمز عبور است. با جابجایی یک آرگومان به سمت چپ، نام میزبان در یک متغیر ذخیره می شود. با جابجایی دو آرگومان به سمت چپ، نام کاربری در یک متغیر ذخیره می شود. رمز عبور با جابجایی مجدد دو آرگومان به سمت چپ در یک متغیر ذخیره می شود. در مرحله بعد، مقادیر نام میزبان، نام کاربری و رمز عبور با سه مقدار رشته برای احراز هویت کاربر مقایسه می شود.

#!/صندوقچه/bash

پیشنهاد می‌کنیم بخوانید:  روش استفاده از گزینه Bash "Set –X".

#تعداد کل را بشمار command-line استدلال ها
جمع=$#

#بررسی کنید که 6 مقدار آرگومان داده شده است یا خیر
اگر [ $total -lt6 ]; سپس
echo “تعداد آرگومان نامعتبر است.”
دیگر
#یک آرگومان را تغییر دهید
تغییر مکان 1
#مقدار hostname را بخوانید
نام میزبان=1 دلار
#تغییر دو آرگومان
تغییر مکان 2
#مقدار نام کاربری را بخوانید
نام کاربری=1 دلار
#تغییر دو آرگومان
تغییر مکان 2
#مقدار رمز عبور را بخوانید
کلمه عبور=1 دلار
فی

#مقادیر احراز هویت را بررسی کنید
اگر [[ $hostname == “localhost”&& $username == “fahmida”&& $password == “1234” ]]; سپس
echo “احراز هویت با موفقیت انجام شد.”
دیگر
echo “احراز هویت ناموفق.”
فی

خروجی:

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

استفاده از دستور "shift" در bashاستفاده از دستور "shift" در bash

نتیجه:

دستور “shift” یک دستور بسیار مفید برای خواندن مطالب خاص است command-line مقادیر آرگومان کاربردهای مختلف این دستور در این آموزش با استفاده از مثال های متعدد توضیح داده شده است تا به خوانندگان کمک کند تا هدف استفاده از این دستور را درک کنند. bash اسکریپت

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 16:09:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید