ทำไมเครื่องหมายตัวหนอน (~) ไม่ขยายเมื่อใช้กับอาร์กิวเมนต์ CLI ที่ขึ้นต้นด้วยขีดกลาง
ฉันเสียเวลาสองสามชั่วโมงในการพยายามเรียกใช้เซิร์ฟเวอร์ VNC (x0vncserver) และลูกค้าปฏิเสธที่จะเชื่อมต่อกับข้อความแปลก ๆ ที่ No password configured for VNC Auth เซิร์ฟเวอร์ยังพิมพ์ข้อผิดพลาดนี้ SVncAuth: opening password file '~/.vnc/passwd' failed ตกลงฉันเสียเวลามากจนกว่าฉันจะรู้ว่าตัวหนอนไม่ได้ถูกขยายโดยเชลล์หรือโดย x0vncserver จากนั้นฉันก็ทำการทดสอบเหล่านี้ $ echo --PasswordFile=~/.vnc/passwd --PasswordFile=~/.vnc/passwd แต่ $ echo PasswordFile=~/.vnc/passwd PasswordFile=/home/tichomir/.vnc/passwd ทำไมถึงเป็นอย่างนั้น? ทำไมเชลล์ปฏิเสธที่จะขยายตัวหนอนถ้าอาร์กิวเมนต์เริ่มต้นด้วยเส้นประ? ฉันคิดว่าตัวหนอนจะขยายตราบใดที่มันไม่ได้ยกมา แต่เห็นได้ชัดว่ามีกฎอื่นที่เข้ามาเล่น?