คำถามเกี่ยวกับตัวแปรพิเศษ เอกสารอธิบายว่า:
!!:$
กำหนดอาร์กิวเมนต์สุดท้ายของคำสั่งก่อนหน้า สิ่งนี้อาจสั้นลงถึง! $
(
$_
ขีดล่าง) ที่การเริ่มต้นเชลล์ตั้งค่าชื่อพา ธ สัมบูรณ์ที่ใช้เพื่อเรียกใช้เชลล์หรือเชลล์สคริปต์ที่จะดำเนินการตามที่ส่งผ่านในสภาพแวดล้อมหรือรายการอาร์กิวเมนต์ จากนั้นขยายไปยังอาร์กิวเมนต์สุดท้ายไปยังคำสั่งก่อนหน้าหลังจากการขยาย นอกจากนี้ยังกำหนดเป็นชื่อพา ธ แบบเต็มที่ใช้เพื่อเรียกใช้คำสั่งแต่ละคำสั่งที่ดำเนินการและวางไว้ในสภาพแวดล้อมที่ส่งออกไปยังคำสั่งนั้น
จะต้องมีความแตกต่างบางอย่างที่ฉันไม่สามารถจับได้เพราะ:
$ echo "hello" > /tmp/a.txt
$ echo "!$"
echo "/tmp/a.txt"
/tmp/a.txt
$ echo "hello" > /tmp/a.txt
$ echo $_
hello
อะไรคือความแตกต่าง?
$_
$_
!$