On Wednesday 12 January 2022 at 00:08:38, Florian Zieboll via Dng wrote: > #!/bin/bash > for f in "$@" ; do > xcmd="unrar x" > $xcmd "$f" > done > > Can please somebody explain, why, if I double-quote the "$xcmd" > variable in line 4, the script fails with > > ./test.sh: line 4: unrar x: command not found
Double-quoting turns the string into a single token, and therefore the parser sees the line as: token 1 = "unrar x" token 2 = "$f" Without the double quoting, it's: token 1 = "unrar" token 2 = "x" token 3 = "$f" "unrar" is a command which can be executed (in this case with a parameter of "x"), whereas "unrar x" is not a command. You can see much the same thing if you try: for f in one two three four do echo "$f" done for f in "one two" "three four" do echo "$f" done Antony. -- The lottery is a tax for people who can't do maths. Please reply to the list; please *don't* CC me. _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng