از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
صادر کردن متغیرهای Bash
سرفصلهای مطلب
مقاله ای که قبلا توسط فهمیده یسمین منتشر شده بود [4] به شما معرفی شگفت انگیزی با متغیرهای Bash می دهد. در اینجا ما پا را فراتر گذاشته و توضیح می دهیم که چگونه متغیرها را در Bash به گونه ای اعلام کنیم که بتوانید از آنها در محیط های دیگر استفاده کنید. روی سیستم لینوکس شما، و چه عوارض جانبی مربوطه را باید در نظر بگیرید.
شرح مختصری از باش
پوسته Bash اولین بار در سال 1989 منتشر شد و به عنوان پوسته ورود به سیستم پیش فرض برای اکثر توزیع های لینوکس استفاده شده است. برایان فاکس Bash را به عنوان پوسته یونیکس و زبان دستوری برای آن نوشت GNU پروژه به عنوان یک نرم افزار رایگان جایگزین برای پوسته Bourne. مخفف آن است Bourne Again Shell. Bash تا حد زیادی با ش و ویژگی های مفیدی از پوسته Korn را در خود جای داده است ksh و پوسته C csh [6].
در حالی که GNU سیستم عامل پوسته های دیگری از جمله نسخه ای از csh، Bash پوسته تعاملی پیش فرض است. این با در نظر گرفتن قابلیت حمل طراحی شده است و در حال حاضر اجرا می شود روی تقریباً تمام نسخه های یونیکس و سایر سیستم عامل ها [9].
متغیرهای Bash به طور خلاصه
متغیرها اجزای ضروری زبان های برنامه نویسی هستند. آنها در یک برنامه کامپیوتری ارجاع و دستکاری می شوند. به بیان ساده، متغیرها سلول های حافظه نامگذاری شده را نشان می دهند. این در Bash مانند هر زبان برنامه نویسی است. این امکان را برای ما به عنوان انسان ها و کاربران رایانه فراهم می کند تا مقادیر را در “مغز” رایانه ذخیره کرده و دوباره آنها را از طریق نام تعیین شده متغیر پیدا کنیم.
اصطلاح متغیر به شکل ترکیبی دو کلمه یعنی vary +able اشاره دارد که به این معنی است که مقدار آن قابل تغییر است و می توان چندین بار از آن استفاده کرد. در مقابل، متغیرهایی که قابل تغییر نیستند ثابت نامیده می شوند. [10]
تا زمانی که حافظه کافی برای اسکریپت شما در دسترس باشد، می توانید آزادانه متغیرها را ایجاد و استفاده کنید. شما به سادگی می توانید آنها را با تعریف یک نام متغیر و سپس اختصاص مقدار آن تنظیم کنید. نام متغیر در Bash می تواند شامل حروف، اعداد و زیرخط باشد. نام آن فقط با یک حرف و یک خط زیر شروع می شود. نام متغیرهای معتبر اندازه، tax5 و _tax20 هستند اما نه 5rules.
یک مقدار متغیر در Bash میتواند شامل یک عدد، یک کاراکتر، رشتهای از کاراکترها یا فهرستی از آیتمها (به نام آرایه) باشد. این یک نوع داده قابل مشاهده ندارد و نوع داده داخلی متغیر به طور خودکار پس از تخصیص یک مقدار مشخص می شود (یا مشتق می شود). علاوه بر این، نیازی به اعلام متغیر نیست – اختصاص یک مقدار به مرجع آن، متغیر را به طور خودکار ایجاد می کند. مثال اسکریپت Bash در زیر این امر را برای یک انتساب رشته و یک انتساب عددی نشان می دهد.
پیام خوش آمد=“سلام دنیا!”
echo $welcomeMessage
قیمت=145
echo قیمت دلار
قراردادهای نامگذاری متغیرهای Bash
هیچ قانون ثابتی برای املای نام متغیرها وجود ندارد، فقط قراردادها وجود دارد. از این قراردادها استفاده می شود:
- نامهای کوچک – متغیرهایی که محلی برای یک اسکریپت یا تابع هستند.
مهم نیست که املای آن کوچک_حروف/حرج مار باشد [8]، یا سبک مورد شتر [7]. مثال بالا از سبک شتری استفاده می کند. - نامهای بزرگ – ثابتها، متغیرهای محیطی، متغیرهای داخلی پوسته.
به خاطر داشته باشید که این متغیرها ممکن است قبلاً توسط برنامه های دیگر مورد استفاده قرار گیرند. به عنوان مثال $PATH، $LANG، $PWD، $PS4، و $SHELL هستند.
برای شرکت های جهانی فناوری اطلاعات، کار با راهنماهای سبک برای اطمینان از یک سبک کدنویسی مشترک در بین شرکت ها رایج است. سرمقاله Developer for IBM و Google Style Guide را ببینید [3] برای اطلاعات بیشتر در مورد کنوانسیون هایی که دنبال می کنند.
دید متغیر
حالت پیش فرض این است که یک متغیر به صورت محلی به یک ساختار، تابع، اسکریپت یا اسکریپت متصل است process، و از خارج از آن قابل دسترسی نیست. مثال زیر این را برای متغیر $message که به اسکریپت تعلق دارد و $welcome که به تابع outputWelcomeMessage () تعلق دارد نشان می دهد.
# یک پیام متغیر برای اسکریپت تعریف کنید
پیام=”دوباره سلام!”
outputWelcomeMessage () {
# یک متغیر محلی تعریف کنید
خوش آمدی=” سلام!”
echo $خوش آمدید
}
outputWelcomeMessage () # چاپ سلام!
echo پیام $ # چاپ سلام، دوباره!
برای اطمینان از اینکه یک متغیر از قبل تعریف شده با همان نام به صورت محلی محدود شده است از کلمه کلیدی local همانطور که در ادامه نشان داده شد استفاده کنید. بدون کلمه کلیدی local، تخصیص در خط 8 به متغیر تعریف شده جهانی با همان نامی که قبلاً تعریف شده بود، مربوط می شود.
# یک پیام متغیر برای اسکریپت تعریف کنید
پیام=”دوباره سلام!”
outputWelcomeMessage () {
# یک متغیر محلی با همین نام تعریف کنید
Local پیام=” سلام!”
echo پیام $
}
outputWelcomeMessage () # چاپ سلام!
echo پیام $ # چاپ سلام، دوباره!
گسترش دامنه یک متغیر
برای اینکه یک متغیر داخلی برای سایر فرآیندهای فرزند قابل مشاهده باشد، یک مرحله اضافی مورد نیاز است. به این مرحله صادرات متغیر می گویند. Bash استفاده از کلمه کلیدی را ارائه می دهد export به دنبال آن نام متغیر. لیست زیر این را برای متغیر BackupPath نشان می دهد.
$ export مسیر پشتیبان
را export فرمان یک پوسته داخلی است که برای تعریف متغیر به عنوان متغیری استفاده میشود که زیرشلها (پوستههای تولید شده از اصلی) به ارث میبرند. متغیرهایی که صادر می شوند توسط بیش از یک قابل خواندن و نوشتن هستند process، سپس.
گزینه دوم این است که از همان ابتدا متغیر را به عنوان متغیر محیطی اعلام کنید. می توانید این کار را با استفاده از کلمه کلیدی declare و سپس گزینه “-x” انجام دهید (نگاه کنید به [5] برای اطلاعات بیشتر در مورد دستور declare). اثر مشابه است export دستوری که قبلا معرفی شده بود.
از جلسات دیگر ارث ببرید
هنگامی که یک برنامه را اجرا می کنید، به طور خودکار متغیرهای محیطی خود را از والد به ارث می برد process. برای مثال اگر $HOME روی /root در والد تنظیم شده باشد، متغیر $HOME فرزند نیز روی /root تنظیم می شود.
دستورات بیشتر
از جمله، لینوکس دستورات و گزینههای مفیدی را ارائه میکند که به متغیرها مربوط میشوند. دو مورد اول env و printenv نامیده می شوند. آنها تمام متغیرهای محیط را فهرست می کنند.
تصویر زیر خروجی دستور env را در a نشان می دهد terminal که در یک جلسه X اجرا می شود. این شامل متغیرهایی مانند $XTERM (terminal نوع)، $SHELL (برنامه ای که پس از ورود فراخوانی می شود و /bin/ را نشان می دهد.bash برای مسیر مترجم Bash)، $LS_COLORS (رنگهایی که برای برجسته کردن انواع فایلهای مختلف هنگام فراخوانی ls استفاده میشوند)، و $DESKTOP_SESSION (محیط رومیزی X فعلی).
سومین و چهارمین گزینه ها هستند export دستور – -p و -n. -p مخفف است print و فقط با استفاده از دستور declare تمام متغیرهای صادر شده را در پوسته فعلی نمایش می دهد.
اعلام -ایکس DESKTOP_SESSION=“xfce”
اعلام -ایکس نمایش دادن=“:0”
اعلام -ایکس GLADE_CATALOG_PATH=“:”
اعلام -ایکس GLADE_MODULE_PATH=“:”
اعلام -ایکس GLADE_PIXMAP_PATH=“:”
اعلام -ایکس HOME=“/خانه/فرانک”
اعلام -ایکس LANG=“de_DE.UTF-8”
گزینه -n برای تنظیم یک متغیر محیطی استفاده می شود. فهرست زیر این را برای متغیر تعریف شده قبلی BACKUPPATH نشان می دهد.
نتیجه
Bash یک محیط بسیار هوشمندانه اما گاهی اوقات کمی پیچیده است. متغیرها روش تعامل ابزارهای مختلف را کنترل می کنند. صادرات متغیرها به برقراری ارتباط بین فرآیندها کمک می کند و استفاده از آن در زندگی روزمره آسان است.
درباره نویسندگان
Jacqui Kabeta یک محیط بان، محقق مشتاق، مربی و مربی است. او در چندین کشور آفریقایی در صنعت فناوری اطلاعات و محیطهای سازمانهای غیردولتی کار کرده است.
فرانک هافمن یک توسعه دهنده، مربی و نویسنده فناوری اطلاعات است و ترجیح می دهد از برلین، ژنو و کیپ تاون کار کند. یکی از نویسندگان کتاب مدیریت بسته دبیان که از dpmb.org در دسترس است
پیوندها و مراجع
- [1] برنامه نویسی Bash، متغیرها، https://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-5.html
- [2] موسسه حرفه ای لینوکس LPIC-1، https://www.lpi.org/our-certifications/lpic-1-overview
- [3] راهنمای سبک پوسته گوگل، نام متغیرها، https://google.github.io/styleguide/shellguide.html#s7-name-conventions
- [4] فهمیده یسمین: روش استفاده از متغیرها در برنامه نویسی Bash، https://linuzhint.com/variables-bash-برنامه نویسی/
- [5] ویکی Bash Hackers، https://wiki.bash-hackers.org/
- [6] The Bash، ویکی پدیا، https://en.wikipedia.org/wiki/Bash_(Unix_shell)
- [7] مورد شتر، ویکی پدیا، https://en.wikipedia.org/wiki/Camel_case
- [8] مورد مار، ویکی پدیا، https://en.wikipedia.org/wiki/Snake_case
- [9] بش چیه https://www.gnu.org/software/bash/manual/html_node/What-is-Bash_003f.html
- [10] استفاده از متغیرها در Bash https://opensource.com/article/19/8/using-variables-bash
- درک عناصر Bash برنامه نویسی https://www.linuxjournal.com/content/understanding-bash-Elements-Programming
- متغیرهای Bash https://www.javatpoint.com/bash-متغیرها
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 04:44:03