آشنایی با پارامترهای اسکریپتی
کاربران غالباً نیاز دارند تا برای یک اسکریپت خاص یکسری پارامترهای ورودی درنظر بگیرند که از جملهٔ این پارامترها میتوان به نام فایل، تاریخ و … اشاره کرد. جالب است بدانیم که نوع این پارامترهای ورودی هم میتوانند عددی باشند و هم چیزی همچون یک فایل:
$ ./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
– *$ هم نام هر سه پارامتر ورودی را چاپ میکند