1

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

所以基本上我想做的是生成适当的字符串,然后执行该字符串,例如:

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 语句..

有没有办法优雅地解决这个问题

4

1 回答 1

1

这应该工作先生

#!/bin/sh

usage ()
{
  echo usage: $0 PARAM1 PARAM2 [PARAM3] [PARAM4]
  exit
}

[ $2 ] || usage
eval "path/to/binary" "$@"
于 2013-01-31T00:35:51.653 回答