Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

เชี่ยวชาญ Bash Positional Parameters: 2 ตัวอย่าง Shell Script ปฏิบัติ

Parameter คือ Entity ที่เก็บค่า สามารถเป็น Name, Number หรือ Special Characters Variable คือ Parameter ที่แทนด้วย Name บางตัวแปรถูกตั้งค่าไว้ให้แล้ว และส่วนใหญ่ไม่สามารถ Assign ค่าได้

ตัวแปรเหล่านี้มีข้อมูลที่มีประโยชน์ สามารถใช้โดย Shell Script เพื่อรู้ Environment ที่มันกำลังรันอยู่

Bash มี Parameter 2 ประเภท:

  • Positional Parameter
  • Special Parameter

ในบทความนี้ มาพูดถึง Bash Positional Parameter พร้อมตัวอย่าง

บทความนี้เป็นส่วนหนึ่งของชุดบทช่วยสอน Bash ต่อเนื่อง

ตัวอย่าง 1: Bash Positional Parameter – $0, $1, $2 ..

Positional Parameters คือ Arguments ที่ส่งให้ Script เมื่อ Invoke มัน อาจเป็น $1 ถึง $N เมื่อ N มีหลายหลัก ต้องเคลมใน Braces เช่น ${N}

Variable $0 คือ Basename ของ Program ตามที่ถูกเรียก

ตัวอย่างต่อไปนี้รับ 2 Arguments และให้ผลลัพธ์ Arithmetic Operations ระหว่าง 2 Integers นั้น

สร้าง arithmetic.sh Shell Script ก่อน:

$ cat arithmetic.sh
#!/bin/bash
echo -e "\$1=$1"
echo -e "\$2=$2"
let add=$1+$2
let sub=$1-$2
let mul=$1*$2
let div=$1/$2
echo -e "Addition=$add\nSubtraction=$sub\nMultiplication=$mul\nDivision=$div\n"

รัน arithmetic.sh พร้อม Parameters:

$ ./arithmetic.sh 12 10
$1=12
$2=10
Addition=22
Subtraction=2
Multiplication=120
Division=1

ใน Output ข้างต้น $1 มีค่า 12 และ $2 มีค่า 10

Shell Builtin let อนุญาตให้ทำ Arithmetic Operation บน Shell Variables สคริปต์ข้างต้นทำ Addition, Subtraction, Multiplication และ Division บน Parameters ที่ให้มา

ตัวอย่าง 2: Set / Unset Bash Positional Parameters

Built-in set Command ใช้ Set และ Unset Positional Parameter

สร้าง positional.sh Shell Script:

$ cat positional.sh
#!/bin/bash
# จาก Command Line
echo -e "Basename=$0"
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
# จาก Set Builtin
set First Second Third
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
# Store Positional Parameters ด้วย - (Hyphen)
set - -f -s -t
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
# Unset Positional Parameter
set --
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"

สคริปต์ข้างต้นพิมพ์ Command Line Arguments ก่อน แล้ว Set Command ตั้งค่า Positional Parameter ให้ชัดเจน Set ด้วย -- หมายถึง End of Options Arguments ต่อไปทั้งหมดเป็น Positional Parameter แม้จะเริ่มด้วย - Set ด้วย -- โดยไม่มี Arguments อื่น Unset Positional Parameters ทั้งหมด

รัน positional.sh:

$ ./positional.sh
Basename=t.sh
$1=12
$2=10
$3=
$1=First
$2=Second
$3=Third
$1=-f
$2=-s
$3=-t
$1=
$2=
$3=

ในบทความถัดไป จะพูดถึง Bash Special Parameters พร้อมตัวอย่าง