از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
متغیرهای Bash: روشهای مفید برای کار با متغیرها در Bash
سرفصلهای مطلب
هر زبان برنامه نویسی دارای مجموعه ای از متغیرهای خاص خود است. آنها بخش اساسی هر سیستمی هستند و برای اجرای حتی ساده ترین برنامه ها مورد نیاز هستند.
با متغیرها، کاربران می توانند هر گونه اطلاعاتی مانند اعداد یا تاریخ و همچنین رشته هایی مانند پاسخ به سؤالات، کاراکترهای الفبایی، اطلاعات نام آنها یا حتی عناصر آرایه را ذخیره کنند.
Bash نیز از این قاعده مستثنی نیست و دارای متغیرهایی نیز می باشد. این یک پوسته یونیکس است که دستورات پوسته را می خواند و از آنها برای تعامل با رایانه فیزیکی یا سرور خصوصی مجازی (میزبان VPS) استفاده می کند.
این آموزش انواع مختلف متغیرهای bash را پوشش میدهد و چند مثال عملی از روش استفاده از آنها ارائه میکند. روی ماشین شما
متغیرهای Bash دقیقاً چه هستند و چگونه کار می کنند؟
یک متغیر bash به عنوان ذخیره موقت برای یک رشته یا یک عدد عمل می کند. متغیرهای Bash زمانی که صحبت از برنامه نویسی bash به میان می آید رایج هستند. متغیرها همچنین نوشتن توابع پیچیده و انجام عملیات های مختلف را برای کاربران آسان می کنند.
کاربران می توانند با دادن نام و مقدار متغیرها را ایجاد کنند. یک نام می تواند هر چیزی باشد. با این حال، نمی تواند با یک عدد شروع شود، و نمی تواند حاوی فاصله باشد، فقط در صورت لزوم زیر خط می کشد.
در مورد مقدار، می تواند هر رشته یا عددی باشد. توصیه می شود نام متغیر را مشابه مقدار آن نگه دارید، زیرا به خاطر سپردن و تمایز بین سایر متغیرها آسان تر است.
در اینجا چند اخطار نحوی دیگر وجود دارد که قابل ذکر است:
- اگرچه امکان قرار دادن اعداد در ابتدای متغیرها وجود ندارد، کاربران همچنان میتوانند با استفاده از حروف بزرگ، اولین یا هر کاراکتری را در نام متغیر بسازند.
- متغیرهای Bash به حروف بزرگ و کوچک حساس هستند، به این معنی که متغیر من و MyVariable متغیرهای مختلف در نظر گرفته خواهد شد.
- وقتی کاربر می خواهد به متغیری اشاره کند، آن را چاپ کنید. به عبارت دیگر، شما باید یک را اضافه کنید $ نماد قبل از نام آن به این ترتیب، bash متوجه می شود که کاربر می خواهد از یک مقدار متغیر استفاده کند.
- هر زمان که کاربر نیاز به ایجاد متغیر یا تغییر مقدار آن داشته باشد، $ نماد لازم نیست، فقط نام واقعی متغیر است.
- معمولاً از دستکاری متغیر در اسکریپت های bash، حلقه ها و آرایه ها استفاده می شود. با این حال، تعیین و استفاده از متغیرها بدون اسکریپت امکان پذیر است – به سادگی بیان کنید که در command-line.
انواع متغیرهای Bash
Bash دارای دو نوع متغیر است – سیستم تعریف شده و تعریف شده توسط کاربر متغیرها بیایید آنها را با جزئیات بیشتر تجزیه و تحلیل کنیم:
- متغیرهای تعریف شده توسط سیستم – همانطور که از نام آن پیداست، bash از قبل با مجموعهای از متغیرها همراه است که میتوان آنها را متغیرهای محیطی نیز نامید. همه آنها می توانند توسط همه اسکریپت های bash استفاده شوند، زیرا قبلاً توسط خود سیستم تعریف شده اند:
کاربران همیشه می توانند لیست متغیرهای تعریف شده توسط سیستم را با استفاده از آن بررسی کنند env یا printenv دستورات
- متغیرهای تعریف شده توسط کاربر – اینها متغیرهایی هستند که توسط کاربر تنظیم و اصلاح شده اند. آنها همچنین می توانند متغیرهای محلی نامیده شوند و فقط در بلوک کد قابل مشاهده هستند. بر خلاف متغیرهای محیطی، متغیرهای تعریف شده توسط کاربر فقط برای آن اسکریپت خاص کار می کنند.
کار با متغیرها در Bash
Bash به کاربران اجازه می دهد تا متغیرها را هم در اسکریپت های bash و هم در آن تعریف و دستکاری کنند command-line. بیایید نگاهی گذرا به هر دو مثال بیندازیم:
خط فرمان
یک را ایجاد خواهیم کرد myuser متغیر و بررسی کنید که از کدام پوسته استفاده می کند.
اسکریپت Bash
یک راه راحت تر برای دستکاری متغیرها با کمک اسکریپت bash است. ما همان اسکریپت را در command-line اما با استفاده از اسکریپت bash. با ایجاد یک فایل اسکریپت bash با ویرایشگر متن دلخواه خود شروع کنید:
nano myscript.sh
سپس محتویات زیر را بچسبانید:
#!/bin/bash myuser="mylovelyname" echo my user is $myuser and my shell is $SHELL
در آخر اسکریپت را اجرا کنید:
bash myscript.sh
روش استفاده از متغیرها در اسکریپت های Bash
یکی از محبوب ترین کاربردهای متغیرهای bash در برنامه نویسی bash است. کاربران می توانند انواع متغیرها را تعریف کرده و از آنها در اسکریپت های خودکار استفاده کنند.
در هنگام اجرا، چنین اسکریپت هایی می توانند هزاران عملیات را تنها با یک کلیک انجام دهند، که آنها را به ویژه برای کارهای اتوماسیون یا صرفه جویی در زمان نوشتن دستورات مشابه به صورت دستی مفید می کند.
بیایید با یک مثال ساده شروع کنیم. با ایجاد یک اسکریپت با ویرایشگر متن مورد علاقه خود شروع کنید. ما استفاده خواهیم کرد نانو در این مورد:
nano script.sh
سپس محتویات زیر را بچسبانید:
#!/bin/bash myvariablename="I love programming languages and variable declaration" echo $myvariablename
خط اول پوسته ای را که استفاده خواهیم کرد را مشخص می کند. در مورد ما، این یک پوسته bash خواهد بود.
سپس، اسکریپت یک متغیر جدید به نام ایجاد می کند myvariablename. توجه داشته باشید که برای اختصاص یک متغیر جدید، باید از یک استفاده کنید علامت مساوی (=).
ما استفاده خواهیم کرد دستور اکو برای چاپ مقدار متغیر همچنین باید از a استفاده کنیم علامت دلار ($)، بنابراین bash می داند که ما به مقدار متغیر نیاز داریم.
در نهایت، اسکریپت را با استفاده از این دستور bash اجرا کنید:
bash script.sh
همانطور که در مثال بالا نشان داده شده است، دستور کل اسکریپت را اجرا می کند و bash تمام اقدامات مشخص شده توسط کاربر را انجام می دهد. روی سیستم.
روش کار با متغیرهای خاص
Bash دارای کاراکترهای ویژه مختلفی است که به آنها نیز گفته می شود متغیرهای خاص. جدول زیر همه آنها را پوشش می دهد:
متغیر ویژه | توضیح |
$@ | آرگومان ها را به صورت آرایه ذخیره می کند |
$$ | را نمایش می دهد process شناسه پوسته فعلی |
$# | نمایش تعداد آرگومان های ارائه شده در یک اسکریپت داده شده |
$* | همه آرگومان های داده شده را با اتصال آنها به یکدیگر گروه بندی می کند |
$! | شناسه آخرین کار پس زمینه را نشان می دهد |
دلار؟ | کد وضعیت خروج را برای آخرین دستور اجرا شده نمایش می دهد |
$0 | نام فایل اسکریپت فعلی را نمایش می دهد |
$_ | متغیر را به آخرین آرگومان آخرین دستور تنظیم می کند |
$- | پرچم های استفاده شده در حال حاضر را نمایش می دهد روی پوسته بش |
$1-${11} | داده های 11 نام آرگومان اول را ذخیره کنید |
بیایید از برخی از این کاراکترهای خاص استفاده کنیم و یک اسکریپت نمونه از آن بسازیم. با ایجاد یک فایل اسکریپت شروع کنید:
nano specialcharacters.sh
کد زیر عملکرد آن را نشان می دهد $0، $*، و $$ متغیرهای ویژه:
#!/bin/bash #Create a new variable myvariable="Writing command-line arguments are fun" #Connect variables with double quotes echo "I am" "a variable" "in bash"; $* #Display the process id of the current shell echo $$ #Display the filename of this script echo $0 #Print out myvariable value echo $myvariable
ابتدا یک متغیر جدید اعلام کردیم، سپس از پارامتر اول برای اتصال رشته ها استفاده کردیم نقل قول های دوگانه به یکی. سپس از کاراکترهای ویژه باقی مانده برای نمایش شناسه پوسته فعلی و نام فایل پوسته ای که اجرا کردیم استفاده کردیم.
چگونه متغیرهای Bash خود را ایجاد کنیم
هر متغیری که بجز متغیرهای محیطی ایجاد کنید، متعلق به شما محسوب می شود. به عبارت دیگر، فقط در اسکریپت شما کار خواهد کرد.
توجه داشته باشید که متغیرها نمی توانند با یک عدد شروع شوند یا حاوی فاصله باشند. با این حال، زیرخط و حروف بزرگ مجاز است. بیایید یک نمونه اسکریپت bash با انواع مختلف نام متغیر ایجاد کنیم:
nano differentvariables.sh
سپس موارد زیر را بچسبانید:
#!/bin/bash variablename="Local variables in bash are awesome" Variablename="Numeric values are also allowed 123" VariableName="4 5 6" Variable_Name="Setting variables are fun" Variable_Nam3="Bash also performs word splitting so any spaces will be removed 1 2 3 4" echo $variablename echo $Variablename echo $VariableName echo $Variable_Name echo $Variable_Nam3
مثال ما نشان می دهد که حتی اگر نام متغیرها مشابه باشد، همه آنها به عنوان متغیرهای جداگانه تفسیر می شوند.
روش کار با متغیرهای محیطی
متغیرهای محیطی را می توان توسط همه اسکریپت های bash استفاده کرد روی یک سیستم داده شده بر خلاف متغیرهای محلی، متغیرهای محیطی به طور خودکار توسط سیستم تنظیم می شوند. آنها همیشه با حروف بزرگ نوشته می شوند که یکی از نشانه های اصلی استفاده کاربران از متغیرهای محیطی است.
به عنوان مثال، اسکریپت زیر چهار پارامتر ضروری را نشان می دهد که مدیران سیستم می توانند هنگام مدیریت سیستم ها از آنها استفاده کنند: نوع پوسته، دایرکتوری فعلی کاربر، فهرست اصلی و نام کاربری واقعی.
#!/bin/bash echo "This user is using $SHELL shell" echo "Their working directory is: $PWD" echo "While their home directory is: $HOME" echo "And the user name is: $USER"
روش صادرات متغیرهای Bash
صادر کردن متغیرها در bash به کاربران اجازه می دهد تا از چنین متغیرهایی بین نمونه های مختلف پوسته فرزند استفاده کنند. برای صادرات متغیرها، ابتدا باید یک متغیر آزمایشی ایجاد کنیم:
hello=world
حالا، اگر بخواهید این متغیر را چاپ کنید، به خوبی کار می کند:
echo "$hello"
اکنون از دستور export برای صادرات استفاده کنید سلام متغیر و به یک نمونه پوسته جدید سوئیچ کنید:
export hello bash echo "$hello"
به عنوان مثال، اگر از آن صرفنظر می کردید صادرات دستور، هیچ خروجی قابل مشاهده نخواهد بود:
روش نقل قول از متغیرهای Bash
علامت نقل قول نقش اساسی در پوسته bash بازی می کند. بسته به اینکه استفاده کنید نقل قول های دوگانه (“) یا نقل قول های تک (‘)، می تواند خروجی را تغییر دهد.
به عنوان مثال، ما دو اسکریپت ایجاد خواهیم کرد، یکی با استفاده از نقل قول های دوگانه و دیگری با استفاده از نقل قول های تکی. با چسباندن دستور زیر شروع به ساخت اسکریپت bash کنید:
nano doublequotes.sh
حالا موارد زیر را بچسبانید:
#!/bin/bash doublequotes="I like writing command-line arguments" echo "Double quotes work like this: $doublequotes"
سپس یک اسکریپت bash دیگر ایجاد کنید:
nano singlequotes.sh
در نهایت از دستور زیر استفاده کنید:
#!/bin/bash singlequotes="String variables are the best" echo 'Single quotes work like this: $singlequotes'
همانطور که در مثال ها مشاهده می شود، نقل قول های دوگانه، مقدار متغیر واقعی را چاپ می کنند. در مقابل، نقل قولها تنها نام متغیر را نشان میدهند.
روش استفاده از دستور تعویض روی ضربه شدید
تعویض فرمان، همچنین به عنوان شناخته شده است جایگزینی متغیر، هست process اجازه دادن به یک فرمان برای اجرا و خروجی آن به عنوان چسبانده شود command-line استدلال ها
به عنوان مثال، اجازه دهید از جایگزینی برای ایجاد 10 فایل با کمک دستور sequence و $( ) شخصیت های خاص:
touch $(seq 1 10)
$ (دنباله 1 10) را لمس کنید $( ) جایگزینی کاراکترهای ویژه اجازه می دهد دست زدن به دستور با هم اجرا شود و در نتیجه دستوری ایجاد شود که 10 فایل خالی ایجاد می کند.
نتیجه
مانند بسیاری از زبان های برنامه نویسی، bash دارای متغیرهای خاص خود است که به عنوان طبقه بندی می شوند محلی و متغیرهای محیطی. کاربران می توانند از آنها برای ایجاد اسکریپت هایی برای خودکارسازی وظایف یا انجام چندین عمل دیگر استفاده کنند روی پوسته بش.
در این آموزش، همه انواع مختلف متغیرها را پوشش داده ایم و چند مثال مفید از روش استفاده از آنها در سناریوهای واقعی ارائه کرده ایم. روی شما فیزیکی یا سرورهای مجازی امیدواریم این آموزش برای شما مفید بوده باشد. اگر سوال یا نظری دارید، آنها را در بخش نظرات زیر مطرح کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 01:15:03