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

เชี่ยวชาญ $@: อาร์กิวเมนต์บรรทัดคำสั่งใน Bash/Linux

บทความนี้จะอธิบายว่า $@ ใน Bash และการเขียนสคริปต์ Bash/Shell คืออะไร รวมถึงวิธีและเหตุผลที่คุณอาจจะใช้มัน

ตัวแปรพิเศษ $@ ใน Bash เป็นตัวแปรที่เก็บค่าของ ทั้งหมด ของอาร์กิวเมนต์/พารามิเตอร์บรรทัดคำสั่งที่ส่งเข้าสู่สคริปต์

อาร์กิวเมนต์/พารามิเตอร์บรรทัดคำสั่งใน Bash

การใช้อาร์กิวเมนต์บรรทัดคำสั่งในสคริปต์ Shell เป็นคุณสมบัติที่สำคัญและมีประโยชน์ เรามีบทความเต็มรูปแบบเกี่ยวกับเรื่องนี้:

บทความนี้ต่อยอดมาจากบทความของเราเกี่ยวกับอาร์กิวเมนต์บรรทัดคำสั่งในสคริปต์ Shell/Bash

$@ ประกอบด้วยพารามิเตอร์/อาร์กิวเมนต์ทั้งหมดที่ส่งให้สคริปต์

วิธีที่ง่ายที่สุดในการแสดงให้เห็นว่า $@ ทำงานอย่างไร ก็คือตัวอย่างโค้ด

สคริปต์ตัวอย่างต่อไปนี้เพียงพิมพ์เนื้อหาของตัวแปร $@

#!/bin/bash
echo $@

การเรียกสคริปต์นี้พร้อมอาร์กิวเมนต์ตัวอย่าง:

sh test.sh "apple" 0 banana 1

จะให้ผลลัพธ์ดังนี้:

apple 0 banana 1 

แสดงให้เห็นว่าตัวแปร $@ เพียงแค่เก็บค่าของพารามิเตอร์ทั้งหมดที่ส่งให้สคริปต์

โปรดสังเกตว่าเครื่องหมายคำพูดถูกลบออก เนื่อง $@ เก็บ ค่า ของพารามิเตอร์ ไม่ใช่ข้อความที่พิมพ์เข้ามา

พารามิเตอร์ตำแหน่ง (positional parameters) ทั้งหมดจะถูกรวมอยู่ในดัชนี 1 เป็นต้นไป (ตำแหน่ง 0 เก็บชื่อของสคริปต์ที่กำลังรัน และจะถูกละเว้น)

$@ เป็นตัวแปรพิเศษที่มีกรณีใช้งานจำกัด – แนะนำให้คุณใช้พารามิเตอร์ตำแหน่ง (positional parameters) และใช้ตามเจตนาที่ออกแบบมา (ส่งค่าหนึ่งต่อพารามิเตอร์หนึ่ง) แทนที่จะพยายามใช้ $@ เพื่ออ่านข้อมูลจำนวนมากเข้าไปในสคริปต์และพยายามแยกวิเคราะห์เอง