Если вы используете bash, вы можете использовать следующий фрагмент. Использование массивов помогает обойти проблемы, которые могут возникнуть, если в позиционных аргументах есть пробелы.
Помните, что позиционные аргументы, передаваемые в исходном примере, сохраняются только в течение всего времени вызова valArgs ().
#!/bin/bash
main()
{
# Build up arg[] array with all options to be passed
# to subcommand.
i=0
for opt in "$@"; do
case "$opt" in
-EMAIL)
MAILFLAG=Y
;;
*)
arg[i]="$opt"
i=$((i+1))
;;
esac
done
$JAVA_HOME/bin/java -d64 -jar WEB-INF/lib/test.jar "${arg[@]}"
}
main "$@"