Friday 24 November 2017

linux - When to wrap quotes around a shell variable?

itemprop="text">

Could someone tell me whether or not I
should wrap quotes around variables in a shell
script?



For example, is the following
correct:




xdg-open $URL

[ $? -eq 2
]


or



xdg-open
"$URL"
[ "$?" -eq "2"
]



And if
so, why?



Answer




General rule: quote it if it can either be
empty or contain spaces (or any whitespace really) or special characters (wildcards).
Not quoting strings with spaces often leads to the shell breaking apart a single
argument into many.



$?
doesn't need quotes since it's a numeric value. Whether $URL
needs it depends on what you allow in there and whether you still want an argument if
it's empty.



I tend to always quote strings just
out of habit since it's safer that way.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...