Ondersteuning > Programmeren
var instellen met waarde *
bart85:
Ik probeer een variabele in te stellen wat de waarde * moet hebben. Maar ik krijg de inhoud van working directory te zien met:
--- Code: ---var=*
--- Einde van code ---
Met het volgende werkt het ook niet:
--- Code: ---var='*'
--- Einde van code ---
En ook niet met:
--- Code: ---var=$'\*'
--- Einde van code ---
Dit geeft nl.:
--- Code: ---echo $var
\*
--- Einde van code ---
Dit is voor in een bash script.
Wat ik wil, maar niet gaat:
--- Code: ---echo $var
*
--- Einde van code ---
bart85:
Oplossing door gebruik van quotes om de variabele heen zetten:
--- Code: ---var=\*
echo "$var"
*
--- Einde van code ---
vanadium:
Alleen dat laatste is nodig. Bij definitie van een variable gebeurt geen shell expansie: `var=*` stelt `var` in op `*`. Bij het echo commando heb je dan wel de quotes nodig, zodat je `echo "*"` krijgt in plaats van `echo *`. In dat laatste geval gaat bash inderdaad, vooraleer het commando uitgevoerd wordt, `*` expanderen tot alle bestandsnamen. De toewijzing werkt op dezelfde wijze met `var=\*` of `var="*".
erik1984:
Interessant! Inderdaad alleen quotes bij de echo nodig.
--- Code: ---erik@erik-desktop:~$ a=*
erik@erik-desktop:~$ echo "$a"
*
--- Einde van code ---
Wist ook niet dat echo * de inhoud van de huidige map geeft.
bart85:
Mijn gedachte was dat de escape key (een \ ) zou werken. Maar dat maakt dus geen verschil. Raar dat de escape key hier geen functie heeft.
Navigatie
[0] Berichtenindex
[#] Volgende pagina
Naar de volledige versie