19 Z Advanced Bash-Scripting Guide, aby uzyskać ostatni argument wiersza poleceń: Lub: lastarg=${!#} Jest to pośrednie odniesienie do $#zmiennej. Pamiętaj, że lastarg=${!$#}to nie działa. bash flerb źródło 4 Nawiasem mówiąc, ABS jest dość marszczony jako odniesienie; zobacz wooledge.org/~greybot/meta/abs, aby zobaczyć historię jej faktoidu na kanale irc.freenode.org # bash. Przez encyklopedia bashowych-hakerów i Wooledge BashGuide nie są niesławny gęstości niedokładności. W ramach tego ostatniego odniesienia pośrednie są szczegółowo omówione w BashFAQ # 6 ; w pierwszym, wiki.bash-hackers.org/syntax/pe#indirection Charles Duffy 1 Tylko pytanie: czy nie jest !$prostsze i to samo? unxnut Odpowiedzi: 27 Jak mówi, jest to odniesienie pośrednie. Weź następujący przykład: $ var=test $ test='Hello, world' $ echo ${!var} Hello, world Teraz gdybym ustawił następujące parametry pozycyjne: $ set -- one two three I $#będzie reprezentować całkowitą liczbę parametrów pozycyjnych: $ echo $# 3 To znaczy, kiedy nazywam to tak, jak ${!#}mówię, podaj mi wartość parametru o nazwie 3: $ echo ${!#} three Jesse_b źródło
27 Jak mówi, jest to odniesienie pośrednie. Weź następujący przykład: $ var=test $ test='Hello, world' $ echo ${!var} Hello, world Teraz gdybym ustawił następujące parametry pozycyjne: $ set -- one two three I $#będzie reprezentować całkowitą liczbę parametrów pozycyjnych: $ echo $# 3 To znaczy, kiedy nazywam to tak, jak ${!#}mówię, podaj mi wartość parametru o nazwie 3: $ echo ${!#} three Jesse_b źródło
!$
prostsze i to samo?Odpowiedzi:
Jak mówi, jest to odniesienie pośrednie. Weź następujący przykład:
Teraz gdybym ustawił następujące parametry pozycyjne:
I
$#
będzie reprezentować całkowitą liczbę parametrów pozycyjnych:To znaczy, kiedy nazywam to tak, jak
${!#}
mówię, podaj mi wartość parametru o nazwie3
:źródło