Meer
Hoe bepaal je of een bash variabele leeg is?
Wat is de beste manier om te bepalen of een variabele in bash leeg is ("")?
Ik heb gehoord dat het aanbevolen wordt om if [ "x$variable" = "x" ]
te doen.
Is dat de juiste manier? (er moet toch iets eenvoudigers zijn)
768
3
Dit zal true teruggeven als een variabele niet is ingesteld of is ingesteld op de lege string ("").
-z
is een de beste manier.Een andere mogelijkheid die ik heb gebruikt is om een variabele in te stellen, maar die kan worden overschreven door een andere variabele, bijv.
Als de
$MY_PORT
variabele leeg is, dan wordtPORT
ingesteld op 5432, anders wordt PORT ingesteld op de waarde vanMY_PORT
. Let op de syntaxis inclusief de dubbele punt en het streepje.Als je'geïnteresseerd bent in het onderscheiden van de gevallen van set-empty versus unset status, kijk dan naar de -u optie voor bash: