[GTALUG] bash quoting [was Re: Help need in bash]
D. Hugh Redelmeier
hugh at mimosa.com
Fri Jun 1 10:56:39 EDT 2018
| From: Seneca Cunningham via talk <talk at gtalug.org>
| You were a touch sloppy with your quoting.
Rules for quoting in bash (or any language with macro semantics) are
hard. Quoting doesn't seem to be natural for humans. Without quotes,
data can bleed into code.
When I'm writing a bash script, I try to quote every macro use except for
those that must not be quoted.
The reason: without quoting, the use will probably break if there is a
space (or other odd thing) in the value but "normal" testing rarely
uncovers this.
UNIX/Linux folks don't think that spaces belong in pathnames but GUIs
and the OS don't agree.
Repeat advice:
- use "set -u" to turn references to undefined macros (spelling
errors) into bash errors
- use "set -e" so that a shell script stops when a command returns an
error value that the script tacitly ignores.
bash scripts are easy to get wrong. I've found that these habits
expose or prevent a significant number of mistakes. They also remove
these issues from consideration when you are trying to puzzle out some
bash problem.
More information about the talk
mailing list