19 So rufen Sie im Advanced Bash-Scripting Guide das letzte Befehlszeilenargument ab: Oder: lastarg=${!#} Dies ist eine indirekte Referenz auf die $#Variable. Beachten Sie, dass lastarg=${!$#}das nicht funktioniert. bash flerb quelle 4 Abgesehen davon ist das ABS als Referenz ziemlich verpönt. siehe wooledge.org/~greybot/meta/abs für die Geschichte ihrer factoid im irc.freenode.org # bash - Kanal. Das Bash-Hackers 'Wiki und der Wooledge BashGuide sind nicht so berüchtigt für die Dichte von Ungenauigkeiten. In letzterem Fall werden indirekte Verweise ausführlich in BashFAQ # 6 behandelt . im ersteren wiki.bash-hackers.org/syntax/pe#indirection Charles Duffy 1 Nur eine Frage: Ist das nicht !$einfacher und gleich? Unxnut Antworten: 27 Wie es heißt, handelt es sich um eine indirekte Referenz. Nehmen Sie das folgende Beispiel: $ var=test $ test='Hello, world' $ echo ${!var} Hello, world Nun, wenn ich die folgenden Positionsparameter einstellen würde: $ set -- one two three Und $#stellt die Gesamtzahl der Positionsparameter dar: $ echo $# 3 Das bedeutet, wenn ich es so nenne, wie ${!#}ich sage, gib mir den Wert des Parameters mit dem Namen 3: $ echo ${!#} three Jesse_b quelle
27 Wie es heißt, handelt es sich um eine indirekte Referenz. Nehmen Sie das folgende Beispiel: $ var=test $ test='Hello, world' $ echo ${!var} Hello, world Nun, wenn ich die folgenden Positionsparameter einstellen würde: $ set -- one two three Und $#stellt die Gesamtzahl der Positionsparameter dar: $ echo $# 3 Das bedeutet, wenn ich es so nenne, wie ${!#}ich sage, gib mir den Wert des Parameters mit dem Namen 3: $ echo ${!#} three Jesse_b quelle
!$
einfacher und gleich?Antworten:
Wie es heißt, handelt es sich um eine indirekte Referenz. Nehmen Sie das folgende Beispiel:
Nun, wenn ich die folgenden Positionsparameter einstellen würde:
Und
$#
stellt die Gesamtzahl der Positionsparameter dar:Das bedeutet, wenn ich es so nenne, wie
${!#}
ich sage, gib mir den Wert des Parameters mit dem Namen3
:quelle