คู่มือ Bash นี้พูดว่า:
หากหมายเลขดัชนีคือ @ หรือ * สมาชิกทั้งหมดของอาร์เรย์จะถูกอ้างอิง
เมื่อฉันทำสิ่งนี้:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i "
done
ให้: example.1 example.2 example.3
(ผลลัพธ์ที่ต้องการ)
แต่เมื่อฉันใช้${LIST[*]}
ฉันได้รับexample.1 2 3
แทน
ทำไม?
แก้ไข: เมื่อใช้ printf, @ และ * จริงจะให้ผลลัพธ์เดียวกัน
ตัวอย่างของฉันไม่ถูกต้องสิ่งนี้เกิดขึ้น
—
arjan
echo
กับprintf
ฉันไม่ได้สังเกตเห็น
มีความเป็นไปได้ที่ซ้ำกันของ$ * และ $ @ คืออะไร
—
goldilocks
@goldilocks คำถามอื่น ๆ ที่เป็นเรื่องเกี่ยวกับและ
—
Stéphane Chazelas
$*
$@
แม้ว่าคำตอบจะคล้ายกันและคำถามหนึ่งอาจถือเป็นชุดย่อยของคำถามอื่น แต่เป็นคำถามที่แตกต่างกัน
echo $SHELL
และวางผลลัพธ์ลงในคำถามของคุณ