> > "Tuc at T-B-O-H.NET" <[EMAIL PROTECTED]> writes: > > > When I brought it over to Linux using bash its doing > > some strange stuff... > > > > SCRIPT: > > > > #!/bin/sh -x > > > > SCRIPT=$1 > > shift > > EMAIL=$1 > > > > echo $SCRIPT > > $SCRIPT 1>/tmp/mailifoutput.$$ 2>&1 > > If you want the shell to reinterpret meta characters like quotes as part > of a parameter expansion, you need to use eval. > > > sh/FreeBSD output: > > > > # ./script.sh "/usr/local/bin/otherprogram \"Param 1\" \"Param2\"" email > > + SCRIPT=/usr/local/bin/otherprogram "Param 1" "Param2" > > + shift > > + EMAIL=email > > + echo /usr/local/bin/otherprogram "Param 1" "Param2" > > /usr/local/bin/otherprogram "Param 1" "Param2" > > + /usr/local/bin/otherprogram "Param 1" "Param2" > > The FreeBSD shell apparently displays the trace ambigously. > > > bash 3.00.15(1)-release/Centos Linux 2.6.9-42.0.10.EL > > [EMAIL PROTECTED] tmp]# ./script.sh "/usr/local/bin/otherprogram \"Param > > 1\" \"Param2\"" email > > + SCRIPT='/usr/local/bin/otherprogram "Param 1" "Param2"' > > + shift > > + EMAIL=email > > + echo /usr/local/bin/otherprogram '"Param' '1"' '"Param2"' > > /usr/local/bin/otherprogram "Param 1" "Param2" > > + /usr/local/bin/otherprogram '"Param' '1"' '"Param2"' > > > Why does it insert the ticks, > > They are single quotes and show you unambiguously the command that is > being exected. You can copy the line minus the leading + into the shell > command line and get exactly the same command executed. > > > which end up making /usr/local/bin/otherprogram fail? > > If the FreeBSD shell does not execute the script the same way as Bash > then it has a serious bug. > Ok... So FreeBSD sh has a bug, I'll take that up with them.
Looks like the eval worked, thank you. Tuc