清除可选参数并将其传递给shell脚本

清除可选参数并将其传递给shell脚本,shell,unix,Shell,Unix,我正在尝试从shell脚本执行cpp二进制文件。。cpp接受参数,其中一些参数是可选的 基本上,我要做的是生成appropiate字符串,然后执行该字符串,如下所示: generate_string() { string="$path/to/binary" param1=$1 param2=$2 generated_string="$string $param1 --param2=$param2" echo $generated_string } #

我正在尝试从shell脚本执行cpp二进制文件。。cpp接受参数,其中一些参数是可选的

基本上,我要做的是生成appropiate字符串,然后执行该字符串,如下所示:

generate_string()
{
    string="$path/to/binary"
    param1=$1
    param2=$2
    generated_string="$string $param1 --param2=$param2"
    echo $generated_string
}

#  execution function
execute()
{
    read -p 'param1: ' param2
    read -p 'param2: ' param2
    echo 'optional arguments'
    *read -p "param3: " param3   
    read  -p "param4: " param4*
    string=$(generate_string $param1 $param2 ???????)
    eval $string
}
现在在这个函数中。。param3和param4中的一个或两个可以为空 我想要的是,如果它是空的,那么我当然不会在字符串中生成它

但我觉得它太乱了,没有if语句

有没有办法优雅地解决这个问题呢?先生,这应该行得通

#/垃圾箱/垃圾箱
用法()
{
回显用法:$0 PARAM1 PARAM2[PARAM3][PARAM4]
出口
}
[$2]| |用法
eval“path/to/binary”“$@”
这应该可以,先生

#/垃圾箱/垃圾箱
用法()
{
回显用法:$0 PARAM1 PARAM2[PARAM3][PARAM4]
出口
}
[$2]| |用法
eval“path/to/binary”“$@”