از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از متغیرهای خاص در Bash
سرفصلهای مطلب
در این مقاله استفاده از متغیرهای ویژه در Bash را برجسته می کنیم. این یک فایل است که ممکن است استفاده شود process دستوراتی که می توان در a وارد کرد terminal پنجره این پست شامل چندین دستور برای اجرا می باشد. ابتدا به تعریف متغیرهای خاص و هدف آنها پرداخته خواهد شد.
متغیرهای ویژه در Bash چیست؟
متغیرهای ویژه آنهایی هستند که معانی آنها از پیش تعریف شده است. آنها برای مدیریت جریان کنترل اسکریپت Bash مستقر شده اند.
به دست آوردن ارزش های آنها ممکن است اما ارائه ارزش ها برای آنها غیرممکن است.
Bash vs Shell
یک نرم افزار کامپیوتری معروف به “پوسته” دستورات را دریافت می کند، آنها را تفسیر می کند و سپس آنها را برای پردازش به سیستم عامل می فرستد. اکثر سیستم عامل های ساخته شده است روی لینوکس حداقل یک نرم افزار پوسته دارد. Dash، Bash یا هر دو احتمالاً برنامه پوسته خواهند بود.
استفاده از Bash آسان و قابل حمل کمتر از اسکریپت پوسته است
استفاده از اسکریپت شل در میان کاربران، هر چه بیشتر از لینوکس استفاده کنند، به احتمال زیاد افزایش می یابد. شما باید آنها را تشویق کنید که ابتدا از پوسته نویسی استفاده کنند تا کارهای آسان تری را انجام دهند، قبل از اینکه به سمت توسعه سنتی حرکت کنند، پس از برخورد با دیوار آجری مقاوم. اسکریپت های شل یک رویکرد عالی برای شروع برنامه نویسی هستند زیرا درک و توسعه آنها بسیار آسان است.
نمونه هایی از متغیرهای ویژه در Bash:
در اینجا چند نمونه از متغیرهای ویژه در Bash آورده شده است.
متغیر | هدف |
---|---|
-$* | ستاره دلار، کل پارامتر را در یک رشته ذخیره می کند |
-$# | چندین آرگومان مشخص شده در خط فرمان است |
$0 | این نشان دهنده نام فایل است |
1 دلار | نشان دهنده اولین استدلال است |
2 دلار | این دومین آرگومان از خط فرمان است |
$@ | برای هر رشته ای که به عنوان یک آرگومان جداگانه در نظر گرفته می شود استفاده می شود |
دلار؟ | این وضعیت خروجی آخرین فرمان را نشان می دهد. |
$$ | این می دهد process شناسه پوسته فعلی |
$! | این PID آخرین کار پس زمینه انجام شده را نشان می دهد |
$ | این PID آخرین کار پس زمینه انجام شده را نشان می دهد |
کاربر | کاربری که اسکریپت با نام کاربری او اجرا می شود |
اکنون میتوانیم از نمونههایی از متغیرهای خاص استفاده کنیم و ببینیم چگونه میتوانیم آنها را در برنامههای خود اجرا کنیم.
مثالی از $*:
این مثال برای تمام سطوح توسعه دهندگان است. در اینجا، خواهیم دید که چگونه و کجا می توانیم از متغیر ویژه $* استفاده کنیم.
در این مثال بالا، دو جمله مجزا را به صورت دابل گیومه می نویسیم و در انتهای این جمله، نیم ویرگول (;) و $*(دلار*) اضافه می کنیم. در نتیجه، ما یک جمله واحد دریافت میکنیم که به این معنی است که Bash این را به عنوان یک نقل قول تایید میکند.
در اینجا نتیجه است:
مثال 0 دلار:
$0 یک متغیر ویژه از bash است که نام فایل اسکریپتی که در شما در حال اجرا است را نشان می دهد terminalبرای مثال، اگر تایپ کنیم:
بنابراین، در مثال بالا وقتی $0 را تایپ می کنیم، در نتیجه خروجی main.sh دریافت می کنیم. بنابراین، main .sh نام فایل ما است.
مثال دلار؟:
دلار؟ یک متغیر ویژه از bash است که کد خروج آخرین فرمان را ارائه می کند terminal. دانستن آخرین دستور، کاربر را برای ادامه اسکریپت خود تسهیل می کند.
بنابراین، در کد زیر اگر “echo $?” را تایپ کنیم.
خروجی در زیر آورده شده است:
حالا که $ را تایپ کردیم؟ و اگر نتیجه 0 را در خود دریافت کنیم terminal، به این معنی است که برنامه فعلی به درستی تکمیل شده است. اما اگر نتیجه 1 یا بیشتر مانند (123456789) را دریافت کردیم به این معنی بود که مشکل برنامه نویسی وجود دارد یا با خطا مواجه شدیم.
اجازه دهید بیانیه بالا را با یک قطعه کد ارائه شده در زیر درک کنیم.
نتیجه در اینجا نشان داده شده است.
rm: نمی توان “من” را حذف کرد فایل نام
: نه اینطوری فایل یا دایرکتوری
ما 0 دریافت کردیم، اما در کد بعدی، با خطا (کد 1) rm: can remove ‘my file name هیچ فایل یا دایرکتوری وجود ندارد. بنابراین، ما هیچ فایلی به نام “نام فایل من” در فهرست خود نداریم، به همین دلیل است که یک خطا به عنوان دریافت کردیم. [execution complete with the exit code 0]
مثالی از $!:
این دلار! (Dollar exclamatory) یک متغیر خاص از bash است که PID (process شناسه) آخرین کار پیشینه انجام شده.
ما نمیتوانیم برای آنها ارزش قائل شویم، فقط ارجاعات برای آنها پذیرفته میشود.
اجازه دهید عبارت بالا را در کدنویسی خود بررسی کنیم terminal با کد زیر:
ما process شناسه کار پسزمینه اخیر را میتوان به عنوان هر عددی که در نتیجه دریافت میکنیم در خروجی مشاهده کرد. در خروجی می گوید [Execution completes with exit code 0].
مثال $-:
خط فاصله دلار ($-) یک متغیر ویژه است که پرچم های موجود در پوسته Bash را ارائه می دهد.
اجازه دهید مثال و خروجی آن را در ما ببینیم terminal.
پوسته Bash فعلی ما دارای پرچم های -h و -b است که در ما موجود است terminal
از پرچمها برای تنظیم گزینهها و آرگومانهایی برای دستوراتی که اجرا میکنید استفاده میشود.
مثال $$-:
$$ شماره PID پوسته فعال را برمیگرداند. صرف نظر از اینکه یک متغیر Bash خاص را از خط فرمان لینوکس یا در اسکریپت پوسته به کار می برید، این تأثیرات متفاوتی دارد. این به این دلیل است که پوسته bash فعال است process شناسه توسط $$ تولید می شود. با این حال، هنگامی که یک اسکریپت جدید را شروع می کنید، یک پوسته Bash جدید راه اندازی می شود.
اجازه دهید از کد زیر برای آزمایش آن استفاده کنیم.
در خروجی زیر، عدد 36 را به عنوان PID دریافت کردیم.
اکنون میتوانیم نمونه ترکیبی متغیرهای ویژه و نتایج آنها را ببینیم تا بتوانیم آن را در یک رابط درک کنیم.
اکو ” کامپیوتر نام میزبان است: $HOSTNAME”
اکو «عدد تصادفی است تصادفی $”
اکو ” process شناسه این است:$$”
در قطعه، از $USER، $HOSTINGNAME، $RANDOM و $$ استفاده کردیم. در نتیجه، خروجی نام میزبان، عدد تصادفی و ما را داریم process شناسه (PID) ما نام کاربری ارائه نکردهایم، بنابراین چیزی به کاربران ما نشان نمیدهد.
کامپیوتر نام میزبان است: 169.254.212.113
عدد تصادفی است 20057
این process شناسه این است:125
نتیجه
ما برنامهنویسی bash، متغیرهای ویژه bash، روش و مکان اعمال آنها و روش اجرای برنامهها در آن را پوشش دادیم. هر یک از این متغیرها از یکدیگر منحصر به فرد هستند و به طور متفاوت عمل می کنند. علاوه بر این، نمونه هایی از روش استفاده از آنها در bash را ارائه کردیم terminal و نحو آنها را نیز برای توضیح و ارائه وضوح بیشتر به مبتدیان ارائه دهید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 07:55:04