小编Ed *_*d Y的帖子

使用环境变量将参数传递给命令

我正在尝试编写一个 bash 脚本,它接受一个环境变量并将其传递给一个命令。

所以如果我有类似的东西:

export OUT="-a=arg1 -b=\"arg2.0 arg2.1\""
Run Code Online (Sandbox Code Playgroud)

我希望在我的 bash 脚本中执行以下操作:

<command> -a=arg1 '-b=arg2.0 arg2.1'
Run Code Online (Sandbox Code Playgroud)

我有一种方法似乎可以做到这一点,但它涉及使用 eval:

eval <command> ${OUT}
Run Code Online (Sandbox Code Playgroud)

如果我包含set -x正确的命令,我会看到:

+ eval <command> a=arg1 'b="arg2.0' 'arg2.1"'
++ <command> -a=arg1 '-b=arg2.0 arg.1'
Run Code Online (Sandbox Code Playgroud)

但是,我已经探讨了使用 eval 的危险,并且由于这将从用户输入中获取参数,因此不太理想。

由于这是 bash,我还考虑使用数组来存储我的参数并简单地说:<command> "$ARRAY[@]"做我想做的事。我一直在尝试使用 IFS,但我不确定我应该拆分什么。

bash eval

8
推荐指数
2
解决办法
9413
查看次数

标签 统计

bash ×1

eval ×1