เมื่อฉันเรียกใช้สคริปต์ต่อไปนี้ด้วยข้อโต้แย้งบางอย่างเช่นarg1 arg2 arg3
:
#!/bin/bash
zenity --entry --text="$@"
Zenity สร้างกล่องโต้ตอบรายการด้วยข้อความนี้: "arg1" ในขณะที่ฉันคาดหวัง "arg1 arg2 arg3"
ถ้าฉันใช้ตัวแปรเช่นสคริปต์ต่อไปนี้มันจะแสดงข้อโต้แย้งทั้งหมดสำหรับข้อความรายการ
#!/bin/bash
text="$@"
zenity --entry --text="$text"
ความแตกต่างระหว่างสคริปต์เหล่านี้คืออะไร? ทำไมคนแรกแทนที่$@
ด้วยอาร์กิวเมนต์แรกเท่านั้น?
zenity --text="$*"
-"$*"
ขยายเป็นคำเดียว