For example the following bash script gives you wrong results:
#!/bin/sh
java -classpath $CLASSPATH eu.kostia.ejb.client.SendEmail $*
This is instead the right way:
#!/bin/sh
# concatenate args and use eval/exec to
# preserve spaces in paths, options and args
args=""
for arg in "$@" ; do
args="$args \"$arg\""
done
CLASSPATH=lib/commons-cli-1.1.jar:bin
cmd="java -classpath $CLASSPATH eu.kostia.ejb.client.SendEmail $args"
eval "exec $cmd"
As you can see, we concatenate first the arguments (enclosed in "...") and then we execute the command.
No comments:
Post a Comment