متغیرهای ویژه پوسته و محیط اجرا

Summarize this content to 400 words in Persian Lang
مقدمه
در این آزمایشگاه با متغیرهای خاص در اسکریپت نویسی پوسته آشنا می شوید. این متغیرها اطلاعات ضروری را در مورد محیط اجرای اسکریپت، مانند آرگومان های خط فرمان، نام اسکریپت و شناسه فرآیند ارائه می دهند. درک این متغیرها به شما کمک می کند تا اسکریپت های پوسته انعطاف پذیرتر و قدرتمندتری بنویسید.
ایجاد اولین اسکریپت
بیایید با ایجاد یک پوسته اسکریپت ساده برای نشان دادن استفاده از متغیرهای خاص شروع کنیم.
ترمینال خود را در WebIDE باز کنید. شما باید یک خط فرمان را ببینید که منتظر ورودی شماست.
به دایرکتوری پروژه بروید:
cd ~/project
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این دستور دایرکتوری فعلی شما را به تغییر می دهد ~/project، که دایرکتوری کاری پیش فرض شما برای این آزمایشگاه است.
یک فایل جدید با نام ایجاد کنید special_vars.sh با استفاده از دستور زیر:
touch special_vars.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
را touch دستور اگر وجود نداشته باشد یک فایل خالی ایجاد می کند، یا اگر وجود داشته باشد مهر زمانی خود را به روز می کند.
فایل را در ویرایشگر WebIDE باز کنید. می توانید این کار را با کلیک بر روی نام فایل در کاوشگر فایل در سمت چپ صفحه انجام دهید.
محتوای زیر را به فایل اضافه کنید:
#!/bin/bash
echo “Script Name: $0”
echo “First Argument: $1”
echo “Second Argument: $2”
echo “All Arguments: $@”
echo “Number of Arguments: $#”
echo “Process ID: $$”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
بیایید کارهایی که هر خط انجام می دهد را بشکنیم:
#!/bin/bash: به این می گویند شبانگ. به سیستم می گوید از bash برای تفسیر این اسکریپت استفاده کند.
$0: این متغیر ویژه نام اسکریپت را نگه می دارد.
$1 و $2: اینها به ترتیب آرگومان های خط فرمان اول و دوم را نشان می دهند.
$@: این نشان دهنده تمام آرگومان های خط فرمان ارسال شده به اسکریپت است.
$#: این تعداد آرگومان های خط فرمان را نشان می دهد.
$$: این شناسه فرآیند پوسته فعلی را ارائه می دهد.
پس از افزودن محتوا فایل را ذخیره کنید.
اسکریپت را با اجرای دستور زیر در ترمینال خود قابل اجرا کنید:
chmod +x special_vars.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
را chmod دستور، مجوزهای یک فایل را تغییر می دهد. را +x گزینه اجازه اجرا را اضافه می کند و به شما امکان می دهد اسکریپت را اجرا کنید.
اجرای اسکریپت با آرگومان ها
اکنون که اسکریپت خود را ایجاد کرده ایم، بیایید آن را با آرگومان های مختلف اجرا کنیم تا ببینیم متغیرهای ویژه چگونه رفتار می کنند.
اسکریپت را بدون هیچ آرگومان اجرا کنید:
./special_vars.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
را ./ قبل از اینکه نام اسکریپت به پوسته بگوید که اسکریپت را در فهرست فعلی جستجو کند.
شما باید خروجی مشابه این را ببینید:
Script Name: ./special_vars.sh
First Argument:
Second Argument:
All Arguments:
Number of Arguments: 0
Process ID: 1234
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توجه داشته باشید که آرگومان های اول و دوم خالی هستند و تعداد آرگومان ها 0 است زیرا ما هیچ آرگومان ارائه نکردیم.
حالا اسکریپت را با چند آرگومان اجرا کنید:
./special_vars.sh hello world
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خروجی باید به شکل زیر باشد:
Script Name: ./special_vars.sh
First Argument: hello
Second Argument: world
All Arguments: hello world
Number of Arguments: 2
Process ID: 1235
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این چیزی است که تغییر کرده است:
$1 اکنون حاوی “سلام” است
$2 اکنون حاوی “جهان” است
$@ همه استدلال ها را نشان می دهد: “سلام دنیا”
$# 2 را نشان می دهد، زیرا ما دو آرگومان ارائه کردیم
شناسه فرآیند ($$) ممکن است هر بار که اسکریپت را اجرا می کنید متفاوت باشد، زیرا توسط سیستم عامل اختصاص داده شده است.
درک دلار؟ و دلار
دو متغیر ویژه مهم دیگر هستند $? و $!. بیایید یک اسکریپت جدید برای نشان دادن استفاده از آنها ایجاد کنیم.
یک فایل جدید با نام ایجاد کنید exit_status.sh:
touch ~/project/exit_status.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل را در ویرایشگر WebIDE باز کنید و محتوای زیر را اضافه کنید:
#!/bin/bash
echo “Running a successful command:”
ls /home
echo “Exit status: $?”
echo “Running a command that will fail:”
ls /nonexistent_directory
echo “Exit status: $?”
echo “Running a background process:”
sleep 2 &
echo “Process ID of last background command: $!”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
بیایید این اسکریپت را بشکنیم:
$? وضعیت خروج آخرین فرمان اجرا شده را می دهد. 0 معمولاً به معنای موفقیت است، در حالی که مقادیر غیر صفر شرایط خطای مختلف را نشان می دهد.
$! شناسه فرآیند آخرین فرمان پس زمینه را می دهد.
را & در پایان یک دستور آن را در پس زمینه اجرا می کند.
فایل را ذخیره کرده و قابل اجرا کنید:
chmod +x ~/project/exit_status.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اسکریپت را اجرا کنید:
./exit_status.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
شما باید خروجی مشابه این را ببینید:
Running a successful command:
labex
Exit status: 0
Running a command that will fail:
ls: cannot access ‘/nonexistent_directory’: No such file or directory
Exit status: 2
Running a background process:
Process ID of last background command: 1236
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توجه:
اولین ls فرمان موفق می شود، بنابراین $? 0 است.
دوم ls دستور شکست می خورد (به دلیل اینکه دایرکتوری وجود ندارد)، بنابراین $? 2 است (مقدار غیر صفر نشان دهنده خطا).
را sleep دستور در پس زمینه اجرا می شود و $! شناسه فرآیند خود را می دهد.
استفاده از متغیرهای ویژه در توابع
متغیرهای ویژه نیز می توانند در داخل توابع استفاده شوند. بیایید یک اسکریپت برای نشان دادن این ایجاد کنیم.
یک فایل جدید با نام ایجاد کنید function_vars.sh:
touch ~/project/function_vars.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل را در ویرایشگر WebIDE باز کنید و محتوای زیر را اضافه کنید:
#!/bin/bash
function print_args {
echo “Function Name: $0”
echo “First Argument: $1”
echo “Second Argument: $2”
echo “All Arguments: $@”
echo “Number of Arguments: $#”
}
echo “Calling function with two arguments:”
print_args hello world
echo “Calling function with four arguments:”
print_args one two three four
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این اسکریپت یک تابع را تعریف می کند print_args که از متغیرهای خاص استفاده می کند. سپس این تابع را دو بار با تعداد آرگومان های مختلف فراخوانی می کند.
فایل را ذخیره کرده و قابل اجرا کنید:
chmod +x ~/project/function_vars.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اسکریپت را اجرا کنید:
./function_vars.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
شما باید خروجی مشابه این را ببینید:
Calling function with two arguments:
Function Name: ./function_vars.sh
First Argument: hello
Second Argument: world
All Arguments: hello world
Number of Arguments: 2
Calling function with four arguments:
Function Name: ./function_vars.sh
First Argument: one
Second Argument: two
All Arguments: one two three four
Number of Arguments: 4
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توجه کنید که:
$0 همچنان به نام اسکریپت اشاره دارد، نه نام تابع.
$1، $2، $@، و $# برای آرگومان های تابع درست مانند آرگومان های اسکریپت کار می کنند.
هر بار که تابع با آرگومان های مختلف فراخوانی می شود، مقادیر این متغیرها تغییر می کند.
درک تفاوت بین $@ و $*
متغیرهای خاص $@ و $* هر دو برای نشان دادن همه آرگومان های خط فرمان استفاده می شوند، اما زمانی که در دو گیومه قرار می گیرند، رفتار متفاوتی دارند. بیایید یک اسکریپت برای نشان دادن این تفاوت ایجاد کنیم.
یک فایل جدید با نام ایجاد کنید at_vs_star.sh:
touch ~/project/at_vs_star.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل را در ویرایشگر WebIDE باز کنید و محتوای زیر را اضافه کنید:
#!/bin/bash
echo “Using \$@:”
for arg in “$@”; do
echo “Argument: $arg”
done
echo “Using \$*:”
for arg in “$*”; do
echo “Argument: $arg”
done
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این اسکریپت تفاوت بین را نشان می دهد $@ و $* هنگامی که در یک حلقه استفاده می شود.
فایل را ذخیره کرده و قابل اجرا کنید:
chmod +x ~/project/at_vs_star.sh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اسکریپت را با چندین آرگومان اجرا کنید، از جمله برخی با فاصله:
./at_vs_star.sh “arg with spaces” another_arg “third arg”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
شما باید خروجی مشابه این را ببینید:
Using $@:
Argument: arg with spaces
Argument: another_arg
Argument: third arg
Using $*:
Argument: arg with spaces another_arg third arg
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این چیزی است که اتفاق می افتد:
با “$@”، هر آرگومان به عنوان یک موجودیت جداگانه در نظر گرفته می شود. آرگومان های با فضاها به صورت واحدهای واحد حفظ می شوند.
با “$*”، همه آرگومان ها در یک رشته ترکیب می شوند که با اولین کاراکتر متغیر IFS (جداکننده فیلد داخلی) که معمولاً یک فاصله است از هم جدا می شوند.
این تفاوت زمانی که نیاز به پردازش آرگومان هایی دارید که ممکن است حاوی فاصله یا سایر کاراکترهای خاص باشند، بسیار مهم است.
خلاصه
در این آزمایشگاه با متغیرهای خاص در پوسته نویسی و نحوه استفاده موثر از آنها آشنا شده اید. شما اسکریپت هایی ایجاد کرده اید که استفاده از متغیرهای خاص مختلف را نشان می دهد $0، $1، $@، $#، $$، $?، و $!. شما همچنین نحوه رفتار این متغیرها در زمینه های مختلف، از جمله در داخل توابع و هنگام مدیریت آرگومان های خط فرمان را بررسی کرده اید.
خوراکی های کلیدی:
$0، $1، $2و غیره نشان دهنده نام اسکریپت و آرگومان های خط فرمان است.
$@ و $# به شما اجازه می دهد با همه آرگومان ها کار کنید و آنها را بشمارید.
$$ شناسه فرآیند فعلی را به شما می دهد که برای ایجاد فایل های موقت منحصر به فرد مفید است.
$? به شما کمک می کند تا بررسی کنید که آیا دستور قبلی موفقیت آمیز بوده است یا خیر.
$! PID آخرین فرآیند پس زمینه را به شما می دهد که برای کنترل کار مفید است.
$@ و $* وقتی نقل قول می شود متفاوت رفتار کنید، که در هنگام مدیریت آرگومان ها با فاصله مهم است.
درک این متغیرهای ویژه برای نوشتن اسکریپت های پوسته پیشرفته تر و انعطاف پذیر بسیار مهم است. آنها به شما اجازه می دهند اسکریپت هایی ایجاد کنید که می توانند با ورودی های مختلف سازگار شوند و اطلاعات ارزشمندی در مورد محیط اجرای اسکریپت ارائه دهند.
همانطور که به تمرین و آزمایش با پوسته اسکریپت ادامه می دهید، راه های بیشتری برای استفاده از این متغیرهای خاص در کار خود خواهید یافت. به یاد داشته باشید که به دفترچه راهنمای bash مراجعه کنید (man bash) برای اطلاعات دقیق تر در مورد این متغیرها و سایر متغیرهای خاص.
🚀 اکنون تمرین کنید: متغیرهای ویژه در شل
می خواهید بیشتر بدانید؟
مقدمه
در این آزمایشگاه با متغیرهای خاص در اسکریپت نویسی پوسته آشنا می شوید. این متغیرها اطلاعات ضروری را در مورد محیط اجرای اسکریپت، مانند آرگومان های خط فرمان، نام اسکریپت و شناسه فرآیند ارائه می دهند. درک این متغیرها به شما کمک می کند تا اسکریپت های پوسته انعطاف پذیرتر و قدرتمندتری بنویسید.
ایجاد اولین اسکریپت
بیایید با ایجاد یک پوسته اسکریپت ساده برای نشان دادن استفاده از متغیرهای خاص شروع کنیم.
-
ترمینال خود را در WebIDE باز کنید. شما باید یک خط فرمان را ببینید که منتظر ورودی شماست.
-
به دایرکتوری پروژه بروید:
cd ~/project
این دستور دایرکتوری فعلی شما را به تغییر می دهد ~/project
، که دایرکتوری کاری پیش فرض شما برای این آزمایشگاه است.
- یک فایل جدید با نام ایجاد کنید
special_vars.sh
با استفاده از دستور زیر:
touch special_vars.sh
را touch
دستور اگر وجود نداشته باشد یک فایل خالی ایجاد می کند، یا اگر وجود داشته باشد مهر زمانی خود را به روز می کند.
-
فایل را در ویرایشگر WebIDE باز کنید. می توانید این کار را با کلیک بر روی نام فایل در کاوشگر فایل در سمت چپ صفحه انجام دهید.
-
محتوای زیر را به فایل اضافه کنید:
#!/bin/bash
echo "Script Name: $0"
echo "First Argument: $1"
echo "Second Argument: $2"
echo "All Arguments: $@"
echo "Number of Arguments: $#"
echo "Process ID: $$"
بیایید کارهایی که هر خط انجام می دهد را بشکنیم:
-
#!/bin/bash
: به این می گویند شبانگ. به سیستم می گوید از bash برای تفسیر این اسکریپت استفاده کند. -
$0
: این متغیر ویژه نام اسکریپت را نگه می دارد. -
$1
و$2
: اینها به ترتیب آرگومان های خط فرمان اول و دوم را نشان می دهند. -
$@
: این نشان دهنده تمام آرگومان های خط فرمان ارسال شده به اسکریپت است. -
$#
: این تعداد آرگومان های خط فرمان را نشان می دهد. -
$$
: این شناسه فرآیند پوسته فعلی را ارائه می دهد.
-
پس از افزودن محتوا فایل را ذخیره کنید.
-
اسکریپت را با اجرای دستور زیر در ترمینال خود قابل اجرا کنید:
chmod +x special_vars.sh
را chmod
دستور، مجوزهای یک فایل را تغییر می دهد. را +x
گزینه اجازه اجرا را اضافه می کند و به شما امکان می دهد اسکریپت را اجرا کنید.
اجرای اسکریپت با آرگومان ها
اکنون که اسکریپت خود را ایجاد کرده ایم، بیایید آن را با آرگومان های مختلف اجرا کنیم تا ببینیم متغیرهای ویژه چگونه رفتار می کنند.
- اسکریپت را بدون هیچ آرگومان اجرا کنید:
./special_vars.sh
را ./
قبل از اینکه نام اسکریپت به پوسته بگوید که اسکریپت را در فهرست فعلی جستجو کند.
شما باید خروجی مشابه این را ببینید:
Script Name: ./special_vars.sh
First Argument:
Second Argument:
All Arguments:
Number of Arguments: 0
Process ID: 1234
توجه داشته باشید که آرگومان های اول و دوم خالی هستند و تعداد آرگومان ها 0 است زیرا ما هیچ آرگومان ارائه نکردیم.
- حالا اسکریپت را با چند آرگومان اجرا کنید:
./special_vars.sh hello world
خروجی باید به شکل زیر باشد:
Script Name: ./special_vars.sh
First Argument: hello
Second Argument: world
All Arguments: hello world
Number of Arguments: 2
Process ID: 1235
این چیزی است که تغییر کرده است:
-
$1
اکنون حاوی “سلام” است -
$2
اکنون حاوی “جهان” است -
$@
همه استدلال ها را نشان می دهد: “سلام دنیا” -
$#
2 را نشان می دهد، زیرا ما دو آرگومان ارائه کردیم
شناسه فرآیند ($$
) ممکن است هر بار که اسکریپت را اجرا می کنید متفاوت باشد، زیرا توسط سیستم عامل اختصاص داده شده است.
درک دلار؟ و دلار
دو متغیر ویژه مهم دیگر هستند $?
و $!
. بیایید یک اسکریپت جدید برای نشان دادن استفاده از آنها ایجاد کنیم.
- یک فایل جدید با نام ایجاد کنید
exit_status.sh
:
touch ~/project/exit_status.sh
- فایل را در ویرایشگر WebIDE باز کنید و محتوای زیر را اضافه کنید:
#!/bin/bash
echo "Running a successful command:"
ls /home
echo "Exit status: $?"
echo "Running a command that will fail:"
ls /nonexistent_directory
echo "Exit status: $?"
echo "Running a background process:"
sleep 2 &
echo "Process ID of last background command: $!"
بیایید این اسکریپت را بشکنیم:
-
$?
وضعیت خروج آخرین فرمان اجرا شده را می دهد. 0 معمولاً به معنای موفقیت است، در حالی که مقادیر غیر صفر شرایط خطای مختلف را نشان می دهد. -
$!
شناسه فرآیند آخرین فرمان پس زمینه را می دهد. - را
&
در پایان یک دستور آن را در پس زمینه اجرا می کند.
- فایل را ذخیره کرده و قابل اجرا کنید:
chmod +x ~/project/exit_status.sh
- اسکریپت را اجرا کنید:
./exit_status.sh
شما باید خروجی مشابه این را ببینید:
Running a successful command:
labex
Exit status: 0
Running a command that will fail:
ls: cannot access '/nonexistent_directory': No such file or directory
Exit status: 2
Running a background process:
Process ID of last background command: 1236
توجه:
- اولین
ls
فرمان موفق می شود، بنابراین$?
0 است. - دوم
ls
دستور شکست می خورد (به دلیل اینکه دایرکتوری وجود ندارد)، بنابراین$?
2 است (مقدار غیر صفر نشان دهنده خطا). - را
sleep
دستور در پس زمینه اجرا می شود و$!
شناسه فرآیند خود را می دهد.
استفاده از متغیرهای ویژه در توابع
متغیرهای ویژه نیز می توانند در داخل توابع استفاده شوند. بیایید یک اسکریپت برای نشان دادن این ایجاد کنیم.
- یک فایل جدید با نام ایجاد کنید
function_vars.sh
:
touch ~/project/function_vars.sh
- فایل را در ویرایشگر WebIDE باز کنید و محتوای زیر را اضافه کنید:
#!/bin/bash
function print_args {
echo "Function Name: $0"
echo "First Argument: $1"
echo "Second Argument: $2"
echo "All Arguments: $@"
echo "Number of Arguments: $#"
}
echo "Calling function with two arguments:"
print_args hello world
echo "Calling function with four arguments:"
print_args one two three four
این اسکریپت یک تابع را تعریف می کند print_args
که از متغیرهای خاص استفاده می کند. سپس این تابع را دو بار با تعداد آرگومان های مختلف فراخوانی می کند.
- فایل را ذخیره کرده و قابل اجرا کنید:
chmod +x ~/project/function_vars.sh
- اسکریپت را اجرا کنید:
./function_vars.sh
شما باید خروجی مشابه این را ببینید:
Calling function with two arguments:
Function Name: ./function_vars.sh
First Argument: hello
Second Argument: world
All Arguments: hello world
Number of Arguments: 2
Calling function with four arguments:
Function Name: ./function_vars.sh
First Argument: one
Second Argument: two
All Arguments: one two three four
Number of Arguments: 4
توجه کنید که:
-
$0
همچنان به نام اسکریپت اشاره دارد، نه نام تابع. -
$1
،$2
،$@
، و$#
برای آرگومان های تابع درست مانند آرگومان های اسکریپت کار می کنند. - هر بار که تابع با آرگومان های مختلف فراخوانی می شود، مقادیر این متغیرها تغییر می کند.
درک تفاوت بین $@ و $*
متغیرهای خاص $@
و $*
هر دو برای نشان دادن همه آرگومان های خط فرمان استفاده می شوند، اما زمانی که در دو گیومه قرار می گیرند، رفتار متفاوتی دارند. بیایید یک اسکریپت برای نشان دادن این تفاوت ایجاد کنیم.
- یک فایل جدید با نام ایجاد کنید
at_vs_star.sh
:
touch ~/project/at_vs_star.sh
- فایل را در ویرایشگر WebIDE باز کنید و محتوای زیر را اضافه کنید:
#!/bin/bash
echo "Using \$@:"
for arg in "$@"; do
echo "Argument: $arg"
done
echo "Using \$*:"
for arg in "$*"; do
echo "Argument: $arg"
done
این اسکریپت تفاوت بین را نشان می دهد $@
و $*
هنگامی که در یک حلقه استفاده می شود.
- فایل را ذخیره کرده و قابل اجرا کنید:
chmod +x ~/project/at_vs_star.sh
- اسکریپت را با چندین آرگومان اجرا کنید، از جمله برخی با فاصله:
./at_vs_star.sh "arg with spaces" another_arg "third arg"
شما باید خروجی مشابه این را ببینید:
Using $@:
Argument: arg with spaces
Argument: another_arg
Argument: third arg
Using $*:
Argument: arg with spaces another_arg third arg
این چیزی است که اتفاق می افتد:
- با
"$@"
، هر آرگومان به عنوان یک موجودیت جداگانه در نظر گرفته می شود. آرگومان های با فضاها به صورت واحدهای واحد حفظ می شوند. - با
"$*"
، همه آرگومان ها در یک رشته ترکیب می شوند که با اولین کاراکتر متغیر IFS (جداکننده فیلد داخلی) که معمولاً یک فاصله است از هم جدا می شوند.
این تفاوت زمانی که نیاز به پردازش آرگومان هایی دارید که ممکن است حاوی فاصله یا سایر کاراکترهای خاص باشند، بسیار مهم است.
خلاصه
در این آزمایشگاه با متغیرهای خاص در پوسته نویسی و نحوه استفاده موثر از آنها آشنا شده اید. شما اسکریپت هایی ایجاد کرده اید که استفاده از متغیرهای خاص مختلف را نشان می دهد $0
، $1
، $@
، $#
، $$
، $?
، و $!
. شما همچنین نحوه رفتار این متغیرها در زمینه های مختلف، از جمله در داخل توابع و هنگام مدیریت آرگومان های خط فرمان را بررسی کرده اید.
خوراکی های کلیدی:
-
$0
،$1
،$2
و غیره نشان دهنده نام اسکریپت و آرگومان های خط فرمان است. -
$@
و$#
به شما اجازه می دهد با همه آرگومان ها کار کنید و آنها را بشمارید. -
$$
شناسه فرآیند فعلی را به شما می دهد که برای ایجاد فایل های موقت منحصر به فرد مفید است. -
$?
به شما کمک می کند تا بررسی کنید که آیا دستور قبلی موفقیت آمیز بوده است یا خیر. -
$!
PID آخرین فرآیند پس زمینه را به شما می دهد که برای کنترل کار مفید است. -
$@
و$*
وقتی نقل قول می شود متفاوت رفتار کنید، که در هنگام مدیریت آرگومان ها با فاصله مهم است.
درک این متغیرهای ویژه برای نوشتن اسکریپت های پوسته پیشرفته تر و انعطاف پذیر بسیار مهم است. آنها به شما اجازه می دهند اسکریپت هایی ایجاد کنید که می توانند با ورودی های مختلف سازگار شوند و اطلاعات ارزشمندی در مورد محیط اجرای اسکریپت ارائه دهند.
همانطور که به تمرین و آزمایش با پوسته اسکریپت ادامه می دهید، راه های بیشتری برای استفاده از این متغیرهای خاص در کار خود خواهید یافت. به یاد داشته باشید که به دفترچه راهنمای bash مراجعه کنید (man bash
) برای اطلاعات دقیق تر در مورد این متغیرها و سایر متغیرهای خاص.
🚀 اکنون تمرین کنید: متغیرهای ویژه در شل
می خواهید بیشتر بدانید؟