Soru özel değişkenlerle ilgilidir. Belgeler şöyle diyor:
!!:$
önceki komutun son argümanını belirler . Bu! $ İle kısaltılabilir.
(
$_
, bir alt çizgi.) Kabuk başlangıcında, ortam ya da argüman listesinde geçirildiği şekilde yürütülmekte olan kabuk ya da kabuk betiğini çağırmak için kullanılan mutlak yol adına ayarlayın. Daha sonra, genişletmeden sonra önceki komutun son argümanına genişler . Ayrıca, yürütülen her komutu çağırmak için kullanılan tam adı seçerek bu komuta verilen ortama yerleştirin.
Yakalayamadığım bir fark olmalı, çünkü:
$ echo "hello" > /tmp/a.txt
$ echo "!$"
echo "/tmp/a.txt"
/tmp/a.txt
$ echo "hello" > /tmp/a.txt
$ echo $_
hello
Fark ne?
$_
. Bu çok önemli. Sizi şaşırtan farkı açıklamayabilir, ancak bir sürü başka yolu açıklar $_
ve !$
aynı değildir.