-
Notifications
You must be signed in to change notification settings - Fork 1
bash shell scripting style guide
Derek Lewis edited this page Nov 17, 2022
·
1 revision
Description:
Double quotes around $@
(and similarly, ${array[@]}
) prevents
globbing and word splitting of individual elements, while still
expanding to multiple separate arguments.
Let's say you have four arguments: baz
, foo bar
, *
and /*/*/*/*
.
"$@"
will expand into exactly that: baz
, foo bar
, *
and
/*/*/*/*
.
$@
will expand into multiple other arguments: baz
, foo
, bar
,
file.txt
, otherfile.jpg
, and (eventually) a list of most files on
the system.
Since the latter is rarely expected or desired, this issue warns you about it.
Problematic code:
cp $@ ~/dir
Correct code:
cp "$@" ~/dir