Hi all, I have a simple shell scripting problem :-) you'll find attached a shell script that ships with ejabberd. It is a fairly straightforward bit of code, and allows us to control bits of the ejabberd internals with a nice cli interface. (Feel free to skip the start / stop bits of the code, I'm fighting with the ctrl function.)
The problem it has is that the parameters are passed to a bash or runas invocation -- at which point the quoting is a mess. Currently I am working around it in the caller by doing some stupid nested-quoting. But this should be easy to cure -- if anyone knows a bit more bash (or portable shell!) than me :-) A minimal exposition of the problem is as follows: $ cat sample.sh #!/bin/bash -x # in the script, the CMD is built up as a string CMD="touch $@" # in practice we somtimes use /sbin/runuser -c # and other times plain bash -c bash -c "$CMD" # this invokation does the wrong thing - $ ./sample.sh ./sample.sh "this is file one" "this is file two" # the ugly workaround is ./sample.sh "'this is file one'" "'this is file two'" Any hints that don't involve a rewrite? cheers, martin-who's-easily-stumped-with-shell-backwardnesss -- martin.langh...@gmail.com mar...@laptop.org -- School Server Architect - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff
ejabberdctl
Description: Binary data
_______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel