Não está claro o que você está tentando fazer, mas não é um simples, se o suficiente?
Por exemplo:
[[ ! -z "$var" ]] && call_program_with_arg "$var"
Ou
if [[ ! -z "$var" ]];then call_program "$var";fi
Se $ var estiver vazio, nada acontece. Se não estiver vazio, chame o programa desejado.
Após a atualização das perguntas:
parameters=( "Param1" "Param2" )
[[ ! -z "$var" ]] && parameters+=( "$var" "Param4") || parameters+=( "Param4" )
java -cp /etc/etc MyClass "${parameters[@]}"
Teste:
$parameters=( "Param1" "Param2" );var="my file.java";[[ ! -z "$var" ]] && parameters+=( "$var" "Param4") || parameters+=( "Param4" );echo java -cp /etc/etc MyClass "${parameters[@]}"
>java -cp /etc/etc MyClass Param1 Param2 my file.java Param4
$parameters=( "Param1" "Param2" );var="";[[ ! -z "$var" ]] && parameters+=( "$var" "Param4") || parameters+=( "Param4" );echo java -cp /etc/etc MyClass "${parameters[@]}"
>java -cp /etc/etc MyClass Param1 Param2 Param4