การใช้ตัวแปรจากบรรทัดคำสั่งหรือเทอร์มินัล
คุณไม่จำเป็นต้องใช้อักขระพิเศษใดๆ ก่อนชื่อตัวแปรในขณะที่ตั้งค่าใน BASH เช่นเดียวกับภาษาโปรแกรมอื่นๆ แต่คุณต้องใช้สัญลักษณ์ '$' ก่อนชื่อตัวแปรเมื่อคุณต้องการอ่านข้อมูลจากตัวแปร คุณสามารถตั้งค่าและรับข้อมูลจากตัวแปรจากเทอร์มินัลด้วยวิธีต่อไปนี้
ตัวอย่างที่ 1: การประกาศและอ่านข้อมูลสตริงโดยใช้ตัวแปร
เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล
$myvar='การเขียนโปรแกรม BASH'
$โยนออก $myvar
เอาท์พุท:
ตัวอย่างที่ 2: การรวมตัวแปรสตริงสองตัว
คุณไม่จำเป็นต้องใช้โอเปอเรเตอร์ใดๆ เพื่อรวมสตริงตั้งแต่สองสตริงขึ้นไปเหมือนภาษาอื่นๆ ที่นี่ $ var1 ใช้สำหรับเก็บค่าสตริงและ $var2 ใช้สำหรับเก็บค่าตัวเลข รันคำสั่งต่อไปนี้จากเทอร์มินัลเพื่อรวมสองตัวแปร $ var1 และ $var2 .
$var1='ราคาของตั๋วนี้คือ $'$var2=ห้าสิบ
$โยนออก $ var1$var2
เอาท์พุท:
**หมายเหตุ: คุณสามารถพิมพ์ค่าของตัวแปรโดยไม่ต้องใส่เครื่องหมายคำพูดใดๆ แต่ถ้าคุณใช้เครื่องหมายคำพูด คุณจะต้องใช้เครื่องหมายคำพูดคู่
ตัวอย่างที่ 3: การต่อสตริงกับตัวแปร
สามารถใช้อัญประกาศคู่เพื่ออ่านค่าของตัวแปรได้ ในตัวอย่างนี้ ใบเสนอราคาเดี่ยวจะใช้กับคำสั่ง echo หนึ่งคำสั่ง และการใช้เครื่องหมายคำพูดสองครั้งในคำสั่ง echo อื่น รันคำสั่งต่อไปนี้จากเทอร์มินัลเพื่อตรวจสอบผลลัพธ์
$ที่ไหน='ทุบตี'$โยนออก '$ varการเขียนโปรแกรม'
$โยนออก '$ var การเขียนโปรแกรม'
เอาท์พุท:
ตัวอย่างที่ 4: การประกาศและอ่านข้อมูลตัวเลขโดยใช้ตัวแปร NS
ข้อ จำกัด ที่สำคัญประการหนึ่งของการเขียนโปรแกรม Bash คือไม่สามารถดำเนินการทางคณิตศาสตร์ได้เช่นเดียวกับภาษาโปรแกรมอื่น ๆ ค่าตัวเลขถูกใช้เป็นสตริงใน BASH ดังนั้นจึงไม่มีการดำเนินการทางคณิตศาสตร์ที่สามารถทำได้โดยนิพจน์ปกติ และเพียงแค่รวมค่าตัวเลขเข้าด้วยกัน หากคุณเขียนนิพจน์ด้วยวงเล็บสองอันแรก การดำเนินการทางคณิตศาสตร์จะทำงานได้อย่างถูกต้อง เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล
$NS=100$โยนออก $n
$โยนออก $n+ยี่สิบ
$((NS=n+ยี่สิบ))
$โยนออก $n
เอาท์พุท:
ตัวอย่างที่-5: การทำการคำนวณทางคณิตศาสตร์โดยใช้คำสั่ง bc
bc คำสั่งเป็นอีกวิธีหนึ่งในการดำเนินการทางคณิตศาสตร์ใน BASH เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล เมื่อคุณใช้ bc คำสั่งเฉพาะสำหรับการดำเนินการทางคณิตศาสตร์ใด ๆ จากนั้นเศษส่วนจะถูกละเว้นจากผลลัพธ์ ต้องใช้ -NS ตัวเลือกด้วย bc คำสั่งเพื่อให้ได้ผลลัพธ์ด้วยค่าเศษส่วน
$NS=55$โยนออก $n/10 | bc
$โยนออก $n/10 | bc -NS
เอาท์พุท:
การใช้ตัวแปรในไฟล์ทุบตี
คุณสามารถกำหนดตัวแปรในไฟล์ bash ได้ด้วยวิธีเดียวกับที่กล่าวไว้ในตัวอย่างข้างต้น คุณต้องสร้างไฟล์ด้วย .NS หรือ .ทุบตี ส่วนขยายเพื่อเรียกใช้สคริปต์ทุบตี
ตัวอย่างที่ 6: การสร้างสคริปต์ทุบตีอย่างง่าย
คัดลอกโค้ดต่อไปนี้ในโปรแกรมแก้ไขข้อความและบันทึกไฟล์ด้วยนามสกุล bash ในสคริปต์นี้ มีการประกาศตัวแปรหนึ่งสตริงและตัวแปรตัวเลขหนึ่งตัว
NS='เรียนรู้การเขียนโปรแกรม BASH'#พิมพ์ค่าสตริง
โยนออก $ str
หนึ่ง=120
#ลบ 20 จากตัวแปรตัวเลข
(( ผลลัพธ์=$num-ยี่สิบ))
#พิมพ์ค่าตัวเลข
โยนออก $ผลลัพธ์
เอาท์พุท:
ตัวอย่างที่ 7: การใช้ตัวแปรโกลบอลและโลคัล
ในสคริปต์ต่อไปนี้ ตัวแปรโกลบอลหนึ่งตัว n และตัวแปรโลคัลสองตัว n และ m ถูกใช้
เมื่อเรียกใช้ฟังก์ชัน added() แล้ว ค่าของตัวแปรโลคัล n จะถูกนำไปคำนวณ แต่ตัวแปรโกลบอล n ยังคงไม่เปลี่ยนแปลง
NS=5
การทำงานส่วนที่เพิ่มเข้าไป()
{
ท้องถิ่น NS=6
ท้องถิ่น NS=4
(( NS=n+m))
โยนออก $n
}
ส่วนที่เพิ่มเข้าไป
โยนออก $n
เอาท์พุท:
ตัวอย่างที่ 8: การใช้ตัวแปรอาร์เรย์
ตัวแปรอาร์เรย์ใช้เพื่อจัดเก็บรายการข้อมูล ตัวอย่างต่อไปนี้แสดงวิธีที่คุณใช้ตัวแปรอาร์เรย์ในสคริปต์ทุบตี องค์ประกอบของอาร์เรย์ใดๆ ถูกคั่นด้วยช่องว่างใน BASH ที่นี่ประกาศอาร์เรย์ 6 องค์ประกอบ ไม่มีฟังก์ชันหรือคุณสมบัติในตัวที่จะนับองค์ประกอบทั้งหมดของอาร์เรย์ # กับ * ใช้ในการนับองค์ประกอบทั้งหมด องค์ประกอบทั้งหมดระบุด้วย * For loop ใช้ที่นี่เพื่อวนซ้ำค่าอาร์เรย์ การอ่านค่าอาร์เรย์และค่าอาร์เรย์ด้วยคีย์จะแสดงในส่วนถัดไปของสคริปต์นี้
#!/bin/bashmyarr=(HTML JavaScript PHP jQuery AngularJS CodeIgniter)
#นับจำนวนอิลิเมนต์ทั้งหมดของอาร์เรย์
ทั้งหมด=${#myarr[*]}
โยนออก 'องค์ประกอบทั้งหมด:รวม $'
#Print แต่ละค่าองค์ประกอบของอาร์เรย์
โยนออก 'ค่าอาร์เรย์ :'
สำหรับชั่วโมงใน ${myarr[*]}
ทำ
printf ' %NSNS' $ ชั่วโมง
เสร็จแล้ว
#Print แต่ละค่าองค์ประกอบของอาร์เรย์ด้วยคีย์
โยนออก 'ค่าอาร์เรย์ด้วยคีย์:'
สำหรับกุญแจใน ${!myarr[*]}
ทำ
printf '%4d: %sNS' $key ${myarr[$key]}
เสร็จแล้ว
เอาท์พุท:
ในการใช้ตัวแปร BASH อย่างถูกต้อง คุณต้องมีแนวคิดที่ชัดเจนเกี่ยวกับการประกาศและการใช้ตัวแปร บทช่วยสอนนี้จะช่วยให้คุณเข้าใจถึงแนวคิดที่ชัดเจนเกี่ยวกับตัวแปร BASH หลังจากใช้ตัวอย่างข้างต้นอย่างถูกต้อง คุณจะสามารถใช้ตัวแปรได้อย่างมีประสิทธิภาพมากขึ้นในสคริปต์ทุบตีของคุณ