هر زبان برنامه نویسی دارای مجموعه ای از متغیرهای خاص خود است. آنها بخش اساسی هر سیستمی هستند و برای اجرای حتی ساده ترین برنامه ها مورد نیاز هستند.

با متغیرها، کاربران می توانند هر گونه اطلاعاتی مانند اعداد یا تاریخ و همچنین رشته هایی مانند پاسخ به سؤالات، کاراکترهای الفبایی، اطلاعات نام آنها یا حتی عناصر آرایه را ذخیره کنند.

Bash نیز از این قاعده مستثنی نیست و دارای متغیرهایی نیز می باشد. این یک پوسته یونیکس است که دستورات پوسته را می خواند و از آنها برای تعامل با رایانه فیزیکی یا سرور خصوصی مجازی (میزبان VPS) استفاده می کند.

این آموزش انواع مختلف متغیرهای bash را پوشش می‌دهد و چند مثال عملی از روش استفاده از آنها ارائه می‌کند. روی ماشین شما

متغیرهای Bash دقیقاً چه هستند و چگونه کار می کنند؟

یک متغیر bash به عنوان ذخیره موقت برای یک رشته یا یک عدد عمل می کند. متغیرهای Bash زمانی که صحبت از برنامه نویسی bash به میان می آید رایج هستند. متغیرها همچنین نوشتن توابع پیچیده و انجام عملیات های مختلف را برای کاربران آسان می کنند.

کاربران می توانند با دادن نام و مقدار متغیرها را ایجاد کنند. یک نام می تواند هر چیزی باشد. با این حال، نمی تواند با یک عدد شروع شود، و نمی تواند حاوی فاصله باشد، فقط در صورت لزوم زیر خط می کشد.

در مورد مقدار، می تواند هر رشته یا عددی باشد. توصیه می شود نام متغیر را مشابه مقدار آن نگه دارید، زیرا به خاطر سپردن و تمایز بین سایر متغیرها آسان تر است.

در اینجا چند اخطار نحوی دیگر وجود دارد که قابل ذکر است:

  • اگرچه امکان قرار دادن اعداد در ابتدای متغیرها وجود ندارد، کاربران همچنان می‌توانند با استفاده از حروف بزرگ، اولین یا هر کاراکتری را در نام متغیر بسازند.
  • متغیرهای Bash به حروف بزرگ و کوچک حساس هستند، به این معنی که متغیر من و MyVariable متغیرهای مختلف در نظر گرفته خواهد شد.
  • وقتی کاربر می خواهد به متغیری اشاره کند، آن را چاپ کنید. به عبارت دیگر، شما باید یک را اضافه کنید $ نماد قبل از نام آن به این ترتیب، bash متوجه می شود که کاربر می خواهد از یک مقدار متغیر استفاده کند.
  • هر زمان که کاربر نیاز به ایجاد متغیر یا تغییر مقدار آن داشته باشد، $ نماد لازم نیست، فقط نام واقعی متغیر است.
  • معمولاً از دستکاری متغیر در اسکریپت های bash، حلقه ها و آرایه ها استفاده می شود. با این حال، تعیین و استفاده از متغیرها بدون اسکریپت امکان پذیر است – به سادگی بیان کنید که در command-line.

انواع متغیرهای Bash

Bash دارای دو نوع متغیر است – سیستم تعریف شده و تعریف شده توسط کاربر متغیرها بیایید آنها را با جزئیات بیشتر تجزیه و تحلیل کنیم:

  • متغیرهای تعریف شده توسط سیستم – همانطور که از نام آن پیداست، bash از قبل با مجموعه‌ای از متغیرها همراه است که می‌توان آن‌ها را متغیرهای محیطی نیز نامید. همه آنها می توانند توسط همه اسکریپت های bash استفاده شوند، زیرا قبلاً توسط خود سیستم تعریف شده اند:

کاربران همیشه می توانند لیست متغیرهای تعریف شده توسط سیستم را با استفاده از آن بررسی کنند env یا printenv دستورات

  • متغیرهای تعریف شده توسط کاربر – اینها متغیرهایی هستند که توسط کاربر تنظیم و اصلاح شده اند. آنها همچنین می توانند متغیرهای محلی نامیده شوند و فقط در بلوک کد قابل مشاهده هستند. بر خلاف متغیرهای محیطی، متغیرهای تعریف شده توسط کاربر فقط برای آن اسکریپت خاص کار می کنند.
پیشنهاد می‌کنیم بخوانید:  روش استفاده از دستور tar: مثال های مفید برای آرشیو و فشرده سازی فایل ها در لینوکس

کار با متغیرها در Bash

Bash به کاربران اجازه می دهد تا متغیرها را هم در اسکریپت های bash و هم در آن تعریف و دستکاری کنند command-line. بیایید نگاهی گذرا به هر دو مثال بیندازیم:

خط فرمان

یک را ایجاد خواهیم کرد myuser متغیر و بررسی کنید که از کدام پوسته استفاده می کند.

استفاده از متغیرهای محلی همراه با متغیر تعریف شده توسط سیستم که نوع SHELL را نمایش می دهد

اسکریپت 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
استفاده از دو متغیر در الف terminal پنجره  خروجی زمانی به پایان می رسد که اکو نتایج را نشان دهداستفاده از دو متغیر در الف terminal پنجره  خروجی زمانی به پایان می رسد که اکو نتایج را نشان دهد

روش استفاده از متغیرها در اسکریپت های 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
این terminal نمایش پنجره on چگونه یک مقدار خاص به یک متغیر در bash اختصاص دهیماین terminal نمایش پنجره on چگونه یک مقدار خاص به یک متغیر در bash اختصاص دهیم

همانطور که در مثال بالا نشان داده شده است، دستور کل اسکریپت را اجرا می کند و 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
این terminal پنجره استفاده از چند کاراکتر خاص را در bash نشان می دهداین terminal پنجره استفاده از چند کاراکتر خاص را در bash نشان می دهد

ابتدا یک متغیر جدید اعلام کردیم، سپس از پارامتر اول برای اتصال رشته ها استفاده کردیم نقل قول های دوگانه به یکی. سپس از کاراکترهای ویژه باقی مانده برای نمایش شناسه پوسته فعلی و نام فایل پوسته ای که اجرا کردیم استفاده کردیم.

پیشنهاد می‌کنیم بخوانید:  4

چگونه متغیرهای 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
اسکریپت فعلی on را terminal اکثر نام متغیرهای معتبر را نمایش می دهداسکریپت فعلی on را terminal اکثر نام متغیرهای معتبر را نمایش می دهد

مثال ما نشان می دهد که حتی اگر نام متغیرها مشابه باشد، همه آنها به عنوان متغیرهای جداگانه تفسیر می شوند.

روش کار با متغیرهای محیطی

متغیرهای محیطی را می توان توسط همه اسکریپت های 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"
این terminal پنجره دستورات برای نمایش نوع پوسته کاربر، دایرکتوری های کاری و خانگی و نام کاربری آنها را نمایش می دهداین terminal پنجره دستورات برای نمایش نوع پوسته کاربر، دایرکتوری های کاری و خانگی و نام کاربری آنها را نمایش می دهد

روش صادرات متغیرهای Bash

صادر کردن متغیرها در bash به کاربران اجازه می دهد تا از چنین متغیرهایی بین نمونه های مختلف پوسته فرزند استفاده کنند. برای صادرات متغیرها، ابتدا باید یک متغیر آزمایشی ایجاد کنیم:

hello=world

حالا، اگر بخواهید این متغیر را چاپ کنید، به خوبی کار می کند:

echo "$hello"
اعلان متغیر در a terminal، دستور echo مقدار متغیر را چاپ می کنداعلان متغیر در a terminal، دستور echo مقدار متغیر را چاپ می کند

اکنون از دستور export برای صادرات استفاده کنید سلام متغیر و به یک نمونه پوسته جدید سوئیچ کنید:

export hello
bash 
echo "$hello"
دستور Export use case در a terminal.  این به کاربران اجازه می دهد تا از متغیرهای تعریف شده محلی در نمونه های مختلف پوسته استفاده کننددستور Export use case در a terminal.  این به کاربران اجازه می دهد تا از متغیرهای تعریف شده محلی در نمونه های مختلف پوسته استفاده کنند

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

خروجی ترمینال زمانی که فرمان صادرات استفاده نشده است.  در این حالت دستور echo هیچ خروجی برای کاربر نمی دهدخروجی ترمینال زمانی که فرمان صادرات استفاده نشده است.  در این حالت دستور echo هیچ خروجی برای کاربر نمی دهد

روش نقل قول از متغیرهای Bash

علامت نقل قول نقش اساسی در پوسته bash بازی می کند. بسته به اینکه استفاده کنید نقل قول های دوگانه (“) یا نقل قول های تک (‘)، می تواند خروجی را تغییر دهد.

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

nano doublequotes.sh

حالا موارد زیر را بچسبانید:

#!/bin/bash
doublequotes="I like writing command-line arguments"
echo "Double quotes work like this: $doublequotes"
این terminal مورد استفاده از دو نقل قول را نشان می دهد، در آن صورت، کاربر یک خروجی استاندارد را می بیند که در آن bash مقدار واقعی یک متغیر معین را چاپ می کند.این terminal مورد استفاده از دو نقل قول را نشان می دهد، در آن صورت، کاربر یک خروجی استاندارد را می بیند که در آن bash مقدار واقعی یک متغیر معین را چاپ می کند.

سپس یک اسکریپت bash دیگر ایجاد کنید:

nano singlequotes.sh

در نهایت از دستور زیر استفاده کنید:

#!/bin/bash
singlequotes="String variables are the best"
echo 'Single quotes work like this: $singlequotes'
خروجی Bash برای اسکریپت نقل قول تکیخروجی Bash برای اسکریپت نقل قول تکی

همانطور که در مثال ها مشاهده می شود، نقل قول های دوگانه، مقدار متغیر واقعی را چاپ می کنند. در مقابل، نقل قول‌ها تنها نام متغیر را نشان می‌دهند.

روش استفاده از دستور تعویض روی ضربه شدید

تعویض فرمان، همچنین به عنوان شناخته شده است جایگزینی متغیر، هست process اجازه دادن به یک فرمان برای اجرا و خروجی آن به عنوان چسبانده شود command-line استدلال ها

به عنوان مثال، اجازه دهید از جایگزینی برای ایجاد 10 فایل با کمک دستور sequence و $( ) شخصیت های خاص:

touch $(seq 1 10)

$ (دنباله 1 10) را لمس کنید $( ) جایگزینی کاراکترهای ویژه اجازه می دهد دست زدن به دستور با هم اجرا شود و در نتیجه دستوری ایجاد شود که 10 فایل خالی ایجاد می کند.

متغیرهای Bash: روش‌های مفید برای کار با متغیرها در Bashمتغیرهای Bash: روش‌های مفید برای کار با متغیرها در Bash
متغیرهای Bash: روش‌های مفید برای کار با متغیرها در Bash 24

نتیجه

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

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