ฉันใช้ bash shell บน linux และต้องการใช้พารามิเตอร์มากกว่า 10 ตัวในเชลล์สคริปต์
ฉันใช้ bash shell บน linux และต้องการใช้พารามิเตอร์มากกว่า 10 ตัวในเชลล์สคริปต์
คำตอบ:
ใช้วงเล็บปีกกาเพื่อปิด:
echo "${10}"
คุณยังสามารถวนซ้ำพารามิเตอร์ตำแหน่งเช่นนี้:
for arg
หรือ
for arg in "$@"
หรือ
while (( $# > 0 )) # or [ $# -gt 0 ]
do
echo "$1"
shift
done
${10}
กำหนดโดย POSIX
${10}
การทำงานเป็นสิ่งที่จำเป็นเมื่อใช้การใช้งานที่เก่ามากซึ่งไม่เป็นไปตามมาตรฐานเท่านั้น อาจเป็นเพียงความสนใจทางประวัติศาสตร์ ... แต่ฉันยังไม่เคยใช้เลย! ฉันคิดว่าเพราะแนวทางปฏิบัติที่ดีที่สุดกำหนดว่าข้อโต้แย้ง 10 ข้อนั้นมีมากเกินไปเว้นแต่ว่าจะมีการทำซ้ำซึ่งในกรณีนี้คุณจะต้องทำซ้ำ"$@"
มากกว่าการแจกแจง
คุณสามารถมีพารามิเตอร์ได้ถึง 256 พารามิเตอร์ตั้งแต่ 0 ถึง 255 ด้วย:
${255}
sh -c 'echo ${333}' /usr/bin/*
set $(seq 2097152); echo ${2097152}
-a 1
หรือ--foo=bar
) แทน ดูman getopt
,man getopts
และman bash
สำหรับบางตัวเลือกสำหรับการทำว่า