On Fri, 2007-06-15 at 17:35 -0700, John Warren wrote:
I've been working on a way to send faxes from a bash script. It requires changing what parameters are used for each command. I keep having problems with quoted strings passed to the command.
I've created a really short test script which fails on my system.
commandline="sendfax -f noreply@prudentrx.com -n -x "Test fax" -d 13105551212 /etc/hosts" echo "Commandline: $commandline" $commandline
When I run the script I get the following:
Commandline: sendfax -f jwarren@prudentrx.com -n -x "Test fax" -d 13105551212 /etc/hosts fax": Can not open file
As you can see the sendfax command is not picking up the "'s around the "Test fax" string so it picks up the Test but thinks fax is the file to fax.
If you take the string and execute it from the command line it works. There is something about executing it from a string within a script that causes it to fail.
I tried doing the same thing using mail as the command with a quoted subject. Same thing happens, it break after the first space in the subject when executed from a sctips.
I've tried using both sh and exec commands but still no joy.
I really need to be able to build a command line with quoted text. Anyone have a way to work around this.
If sendfax is a script, another level of parsing certainly occurs. Check teh bash man page for "evel". This migh give you clues. If it seems applicable, multiple backslashes with the eval command may sovle some of the problem.
Regardless, a simple backslas or two ahead of the space may fix it. Experimentation should help.
If the sendfax is not a script, no telling if it is gracefull enough to handle either spaces of backslashes.
<snip>
-- Bill