$ {! #} Son komut satırı argümanını almak için bash'da nasıl çalışır?


19

Gelişmiş Bash-Scripting Kılavuzu'ndan son komut satırı argümanını almak için:

Veya: lastarg=${!#} This is an dolaylı referans için $#değişken.
Bunun lastarg=${!$#}işe yaramadığını unutmayın.


4
Bir yana, ABS referans olarak oldukça kaşlarını çattı; irc.freenode.org # bash kanalındaki factoidinin tarihi için wooledge.org/~greybot/meta/abs adresine bakın . Bash hacker Wiki ve Wooledge BashGuide yanlışlıklar yoğunluğu ile ünlü değildir. İkincisi içinde, dolaylı referanslar BashFAQ # 6 ; eskiden, wiki.bash-hackers.org/syntax/pe#indirection
Charles Duffy

1
Sadece bir soru: Daha !$basit ve aynı değil mi?
9'da 38

Yanıtlar:


27

Dediği gibi dolaylı bir referanstır. Aşağıdaki örneği alın:

$ var=test
$ test='Hello, world'
$ echo ${!var}
Hello, world

Şimdi aşağıdaki konumsal parametreleri ayarlayacak olsaydım:

$ set -- one two three

Ve $#toplam konum parametresi sayısını temsil edecektir:

$ echo $#
3

Dediğim gibi bana çağrı yaptığınızda ${!#}şu parametre değerini vermek anlamına gelir 3:

$ echo ${!#}
three
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.