ฉันคิดว่านี่จะเป็นตัวอย่างที่ง่ายกว่าของสิ่งที่คุณต้องการบรรลุ ไม่จำเป็นต้องใช้เครื่องมือภายนอก เครื่องมือทุบตีในตัวสามารถทำงานให้คุณได้
function DOSOMETHING {
while test $# -gt 0; do
case "$1" in
-first)
shift
first_argument=$1
shift
;;
-last)
shift
last_argument=$1
shift
;;
*)
echo "$1 is not a recognized flag!"
return 1;
;;
esac
done
echo "First argument : $first_argument";
echo "Last argument : $last_argument";
}
สิ่งนี้จะช่วยให้คุณใช้แฟล็กดังนั้นไม่ว่าคุณจะสั่งซื้อพารามิเตอร์ใดคุณจะได้รับพฤติกรรมที่เหมาะสม
ตัวอย่าง:
DOSOMETHING -last "Adios" -first "Hola"
ผลผลิต:
First argument : Hola
Last argument : Adios
คุณสามารถเพิ่มฟังก์ชั่นนี้ในโปรไฟล์ของคุณหรือใส่ไว้ในสคริปต์
ขอบคุณ!
แก้ไข: บันทึกเป็นไฟล์ aa จากนั้นเรียกใช้งานเป็น yourfile.sh -last "Adios" -first "Hola"
#!/bin/bash
while test $# -gt 0; do
case "$1" in
-first)
shift
first_argument=$1
shift
;;
-last)
shift
last_argument=$1
shift
;;
*)
echo "$1 is not a recognized flag!"
return 1;
;;
esac
done
echo "First argument : $first_argument";
echo "Last argument : $last_argument";