Sokan Academy

کاربران غالباً نیاز دارند تا برای یک اسکریپت خاص یکسری پارامترهای ورودی درنظر بگیرند که از جملهٔ این پارامترها می‌توان به نام فایل، تاریخ و … اشاره کرد. جالب است بدانیم که نوع این پارامترهای ورودی هم می‌توانند عددی باشند و هم چیزی همچون یک فایل:

$ ./script.sh /tmp
$ ./script.sh 100 200

همان‌طور که در کامند فوق مشاهده می‌شود، در مورد اول فایلی تحت‌عنوان tmp به‌عنوان پارامتر ورودی درنظر گرفته شده است و در مورد دوم از ۲ عدد مختلف به‌عنوان پارامترهای ورودی استفاده شده است. در اسکریپت‌نویسی شل، پارامتر (آرگومان) بااستفاده از یک علامت $ و یک عدد مشخص می‌شود؛ جدول زیر برخی از این پارامترها را نشان می‌دهد:

پارامتر کاربرد $0 نام اسکریپت $1 اولین پارامتر $2، $3 و غیره دومین، سومین و … پارامتر *$ تمامی پارامترها #$ تعداد آرگومان‌ها

برای روشن‌تر شدن این مسأله، مثالی می‌زنیم؛ در ادیتور دلخواه خود فایلی تحت‌عنوان script.sh ساخته و محتویات زیر را داخل آن کپی کنید:

#!/bin/bash
echo "The name of this program is: $0"
echo "The first argument passed from the command line is: $1"
echo "The second argument passed from the command line is: $2"
echo "The third argument passed from the command line is: $3"
echo "All of the arguments passed from the command line are : $*"

سپس همان‌طور که در گذشته آموزش داده شد، بااستفاده از دستور chmod +x این فایل را قابل‌اجرا کنید؛ سپس با درنظر گرفتن ۳ پارامتر one two three، فایل script.sh را اجرا کنید و خروجی این اسکریپت به‌صورت زیر خواهد بود:

The name of this program is: ./script.sh
The first argument passed from the command line is: one
The second argument passed from the command line is: two
The third argument passed from the command line is: three
All of the arguments passed from the command line are: one two three

چنانچه بخواهیم اسکریپت فوق را تفسیر کنیم، بایستی بگوییم که:

  •  $0 نام اسکریپت را چاپ می‌کند که برابر است با script.sh
  •  $1 نام اولین پارامتر را چاپ می‌کند که برابر است با one
  • $2 نام دومین پارامتر را چاپ می‌کند که برابر است با two
  •  $3 نام سومین پارامتر را چاپ می‌کند که برابر است با three
  •  *$ هم نام هر سه پارامتر ورودی را چاپ می‌کند
linuxلینوکسسیستم عاملگنو/لینوکس

sokan-academy-footer-logo
کلیه حقوق مادی و معنوی این وب‌سایت متعلق به سکان آکادمی می باشد.