Parameter Substitution (Bash): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 1: Regel 1:
''Parameter substitution'' of ''parameter expansion'' betekent dat in een Bash-expressie een variabele wordt vervangen door de inhoud van die variabele. Plus nog wat extra's waaronder ''find-&-replace''. Krachtig spul!
+
''Parameter substitution'' of ''parameter expansion'' betekent dat in een Bash-expressie een ''parameter'' of ''variabele'' wordt vervangen door de inhoud van die variabele. Parameter expansion wordt aangegeven met <code>$</code>, vaak in combinatie met accolades: <code>${}</code>, of nog completer: <code>${parameter}</code>.
 +
 
 +
Het principe is heel simpel en het weergeven van de waarde van een variabele is hier zelfs al een voorbeeld van:
 +
 
 +
<pre>
 +
$ a=12
 +
$ echo $a
 +
</pre>
 +
 
 +
Afhankelijk van de gebruikte syntaxis, kun je een hoop truken uithalen, waaronder ''find-&-replace''. Dat maakt dit een krachtig stuk gereedschap.
 +
 
 +
 
 +
 
 +
 
 +
 
 +
Plus nog wat extra's waaronder ''find-&-replace''. Krachtig spul!
  
 
Gelijk al een raar voorbeeld: Het eerste argument moet een variabele zijn, maar de tweede en derde zijn ''literals''???
 
Gelijk al een raar voorbeeld: Het eerste argument moet een variabele zijn, maar de tweede en derde zijn ''literals''???

Versie van 1 aug 2021 18:55

Parameter substitution of parameter expansion betekent dat in een Bash-expressie een parameter of variabele wordt vervangen door de inhoud van die variabele. Parameter expansion wordt aangegeven met $, vaak in combinatie met accolades: ${}, of nog completer: ${parameter}.

Het principe is heel simpel en het weergeven van de waarde van een variabele is hier zelfs al een voorbeeld van:

$ a=12
$ echo $a

Afhankelijk van de gebruikte syntaxis, kun je een hoop truken uithalen, waaronder find-&-replace. Dat maakt dit een krachtig stuk gereedschap.



Plus nog wat extra's waaronder find-&-replace. Krachtig spul!

Gelijk al een raar voorbeeld: Het eerste argument moet een variabele zijn, maar de tweede en derde zijn literals???

naam="Janneke"
echo ${naam/a/A}
JAnneke


# Dit doet nix, want variable heeft geen waarde:
# 
echo ${Jasper/a/A}


# Dit geeft foutmelding - Snap ik niet
#
echo ${"Jasper"/a/A}
echo ${"Jasper"/a/A}: bad substitution

Zie ook

Bronnen