Bash Manual diyor (manpage, benim vurgu):
Bash harici bir komut çağırdığında, değişken komutun
$_
tam yol adına ayarlanır ve ortamındaki bu komuta iletilir.
Ve ( Özel Parametreler ):
_
(
$_
, alt çizgi.) Kabuk başlangıcında, ortam veya bağımsız değişken listesinde geçirildiği sırada yürütülen kabuk veya kabuk komut dosyasını çağırmak için kullanılan mutlak yol adına ayarlayın. Daha sonra, genişletmeden sonra önceki komutun son bağımsız değişkenine genişler. Ayrıca, bu komuta aktarılan ortama yürütülen ve yerleştirilen her komutu çağırmak için kullanılan tam yol adına ayarlanır. Postaları kontrol ederken, bu parametre posta dosyasının adını tutar.
Bir bash kabuğunda koşuyorum:
$ bash $ export | grep '_='
El kitabına göre
_
, yeni bash kabuğunun ortam değişkeni olmalıdır.export
yeni bash kabuğunun tüm ortam değişkenlerini çıkarması gerekiyor, ancak çıkmıyor_
. Bu yüzden_
yeni bash kabuğunun ortam değişkeni olup olmadığını merak ediyorum.Aslında herhangi bir bash kabuğunda aynı şey olur
$ export | grep '_='
hiçbir şey çıkarmaz. Acaba
_
hiç bir kabuk kabuğunun ortam değişkeni var mı?Karşılaştırma için:
$ dash $ export | grep '_=' export _='/bin/dash'
Yayımım Mike'ın yorumu ve Stephane'nin cevabından ilham alıyor .
bash -c export | grep _=
(Bash itibaren) olacaktır ebeveyn kabuk çağrılan göstermek bash
olsa komutu $_
ebeveyn de düzdür.
export
bir yerleşiktir, ancak kullanırsanızprintenv _
size nasıl çağrıldığını gösterecektir:/usr/bin/printenv
bu sistemde.