प्रश्न विशेष चर के बारे में है। प्रलेखन कहता है:
!!:$
पूर्ववर्ती आदेश का अंतिम तर्क निर्दिष्ट करता है । यह छोटा हो सकता है! $।
(
$_
, एक अंडरस्कोर।) शेल स्टार्टअप पर, शेल या शेल स्क्रिप्ट को लागू करने के लिए उपयोग किए जाने वाले निरपेक्ष पथनाम पर सेट किया जाता है जिसे पर्यावरण या तर्क सूची में पारित किया जाता है। इसके बाद, विस्तार के बाद पिछले कमांड के अंतिम तर्क का विस्तार करता है। साथ ही निष्पादित किए गए प्रत्येक कमांड को लागू करने के लिए उपयोग किए गए पूर्ण पथनाम पर सेट है और उस कमांड को निर्यात किए गए वातावरण में रखा गया है।
कुछ अंतर होना चाहिए क्योंकि मैं पकड़ नहीं सकता, क्योंकि:
$ echo "hello" > /tmp/a.txt
$ echo "!$"
echo "/tmp/a.txt"
/tmp/a.txt
$ echo "hello" > /tmp/a.txt
$ echo $_
hello
अंतर क्या है?
$_
$_
!$