
You will want to make $a an array, e.g.: a=(arg1 arg2) a+=(arg3) Then unpack properly: "${a[@]}" Here's a pretty good guide: http://mywiki.wooledge.org/BashGuide/Arrays Cheers, Dave On May 2, 2012 4:49 PM, "Chris Samuel" <chris@csamuel.org <mailto:chris@csamuel.org>> wrote: Hi folks, I'm banging my head against how to properly pass a list of arguments in a variable through to a command in bash where the list of arguments itself has quoted values in it. Here's a test case script: $ cat odd-quoting.sh #!/bin/bash a='--debug --make-maker=--make-maker="INSTALLDIRS=vendor INSTALLMAN1DIR=none INSTALLMAN3DIR=none" --no-sign' echo cpan2rpm $a If I run that script with dash on Ubuntu it looks fine: $ sh -x odd-quoting.sh + a=--debug --make-maker=--make-maker="INSTALLDIRS=vendor INSTALLMAN1DIR=none INSTALLMAN3DIR=none" --no-sign + echo cpan2rpm --debug --make-maker=--make-maker="INSTALLDIRS=vendor INSTALLMAN1DIR=none INSTALLMAN3DIR=none" --no-sign [...] But if I run it with bash on either Ubuntu or my actual target, RHEL6, it gets it wrong: $ bash -x odd-quoting.sh + a='--debug --make-maker=--make-maker="INSTALLDIRS=vendor INSTALLMAN1DIR=none INSTALLMAN3DIR=none" --no-sign' + echo cpan2rpm --debug '--make-maker=--make-maker="INSTALLDIRS=vendor' INSTALLMAN1DIR=none 'INSTALLMAN3DIR=none"' --no-sign [...] I get the same problem if I run bash from its /bin/sh symlink on RHEL6. Any ideas what I'm missing here ? cheers, Chris -- Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC _______________________________________________ luv-main mailing list luv-main@luv.asn.au <mailto:luv-main@luv.asn.au> http://lists.luv.asn.au/listinfo/luv-main