การใช้ตัวแปรอาร์กิวเมนต์:
ตัวแปรอาร์กิวเมนต์เริ่มต้นที่ $0. ชื่อไฟล์สคริปต์หลักถูกเก็บไว้ใน $0 ซึ่งรับค่าอาร์กิวเมนต์จากอาร์กิวเมนต์บรรทัดคำสั่ง หากสองอาร์กิวเมนต์ถูกส่งผ่านในบรรทัดคำสั่ง ค่าอาร์กิวเมนต์จะได้รับในตัวแปร $1 และ $2 ตามลำดับ
ตัวอย่าง -1: การส่งค่าตัวเลขสามค่าเป็นอาร์กิวเมนต์
สร้างไฟล์ bash และเพิ่มรหัสต่อไปนี้ สคริปต์จะได้รับค่าอาร์กิวเมนต์สามค่าและเก็บไว้ใน $1, $2 และ $3 จะนับจำนวนอาร์กิวเมนต์ทั้งหมด พิมพ์ค่าอาร์กิวเมนต์แบบวนซ้ำและไม่วนซ้ำ สุดท้าย พิมพ์ผลรวมของค่าอาร์กิวเมนต์ทั้งหมด
#!/bin/bash
# การนับจำนวนอาร์กิวเมนต์ทั้งหมด
โยนออก 'จำนวนอาร์กิวเมนต์ทั้งหมด : $#'
# อ่านค่าอาร์กิวเมนต์เป็นรายบุคคล
โยนออก 'ค่าอาร์กิวเมนต์แรก : $1'
โยนออก 'ค่าอาร์กิวเมนต์ที่สอง : $2'
โยนออก 'ค่าอาร์กิวเมนต์ที่สาม : $3'
# การอ่านค่าอาร์กิวเมนต์โดยใช้ลูป
สำหรับargvalใน ' [ป้องกันอีเมล] '
ทำ
โยนออก -NS '$argval'
เสร็จแล้ว
# การเพิ่มค่าอาร์กิวเมนต์
ผลรวม= $(($ 1+$ 2+$ 3))
#พิมพ์ผล
โยนออก -และ 'NSผลรวม =$sum'
เรียกใช้ไฟล์ทุบตีด้วยค่าอาร์กิวเมนต์ตัวเลขสามค่า
$ทุบตีcmdline1.shห้าสิบ 35 สิบห้า
ตัวอย่าง -2: ใช้ชื่อไฟล์เป็นอาร์กิวเมนต์
สร้างไฟล์ทุบตีและเพิ่มรหัสต่อไปนี้เพื่อนับจำนวนอักขระทั้งหมดของไฟล์ใด ๆ ที่นี่ ชื่อไฟล์จะถูกส่งเป็นอาร์กิวเมนต์บรรทัดคำสั่ง
#!/bin/bashชื่อไฟล์=$ 1
Totalchar=``ห้องน้ำ -ค $ชื่อไฟล์``
โยนออก 'จำนวนอักขระทั้งหมดคือ$ totalchar'
รันสคริปต์ทุบตีด้วยชื่อไฟล์เป็นค่าอาร์กิวเมนต์เดียว และรันคำสั่งอื่นเพื่อตรวจสอบจำนวนอักขระทั้งหมดของไฟล์นั้น ที่นี่ ไฟล์ employee.txt ถูกใช้เป็นค่าอาร์กิวเมนต์ จำนวนอักขระทั้งหมดของไฟล์ employee.txt คือ 204
$ทุบตีcmdline2.sh employee.txt
$ห้องน้ำ -คพนักงาน.txt
การใช้ฟังก์ชัน getopts:
หากคุณต้องการเก็บข้อมูลในฐานข้อมูลหรือไฟล์ใด ๆ หรือสร้างรายงานในรูปแบบเฉพาะตามค่าอาร์กิวเมนต์บรรทัดคำสั่ง getopts ฟังก์ชั่นเป็นตัวเลือกที่ดีที่สุดในการทำงาน เป็นฟังก์ชันลินุกซ์ในตัว ดังนั้น คุณสามารถใช้ฟังก์ชันนี้ในสคริปต์เพื่ออ่านข้อมูลที่จัดรูปแบบจากบรรทัดคำสั่งได้อย่างง่ายดาย
ตัวอย่าง -1: การอ่านอาร์กิวเมนต์โดยฟังก์ชัน getopts
สร้างไฟล์ทุบตีและเพิ่มสคริปต์ต่อไปนี้เพื่อทำความเข้าใจการใช้ getopts การทำงาน. ฟังก์ชัน 'getopts' ใช้กับ while loop เพื่ออ่านตัวเลือกอาร์กิวเมนต์บรรทัดคำสั่งและค่าอาร์กิวเมนต์ ที่นี่ใช้ 4 ตัวเลือกคือ 'ฉัน', 'น', 'ม' และ 'และ' . คำสั่ง case ใช้เพื่อจับคู่ตัวเลือกเฉพาะและเก็บค่าอาร์กิวเมนต์ไว้ในตัวแปร สุดท้าย พิมพ์ค่าของตัวแปร
#!/bin/bashในขณะที่ getopts ':ในฉัน:'โกรธ;ทำ
กรณี $ arg ใน
ผม) NS=$OPTARG;;
NS) ชื่อ=$OPTARG;;
NS) วันผลิต=$OPTARG;;
และ) วันที่หมดอายุ=$OPTARG;;
esac
เสร็จแล้ว
โยนออก -และ 'NS$ID $ชื่อ $Manufacturing_date $หมดอายุ_dateNS'
เรียกใช้ไฟล์ด้วยตัวเลือกและค่าอาร์กิวเมนต์ต่อไปนี้ ที่นี่ p100 คือค่าของตัวเลือก -i 'Hot Cake' คือค่าของ -n ตัวเลือก '01-01-2018' คือค่าของตัวเลือก -m และ '06-01-2018' คือค่าของ - อี ตัวเลือก
$ทุบตีcmdline3.sh-ผมp001-NS 'เค้กร้อน' -NS '01 -01-2018 ' -และ '06 -01-2018 '
เมื่อคุณต้องการส่งค่าอย่างง่ายในสคริปต์ ควรใช้ตัวแปรอาร์กิวเมนต์ แต่ถ้าคุณต้องการส่งข้อมูลในรูปแบบที่จัดรูปแบบ ควรใช้ฟังก์ชัน getopts เพื่อดึงค่าอาร์กิวเมนต์ ดูข้อมูลเพิ่มเติม วีดีโอ !