bash:从单个变量传递多个参数

it3*_*3xl 2 bash

在 bash 调用中,我想将一些常量参数放入一个变量中,并且不要在管道内丢失 StdOut 和 StdErr。

我有电话

git fetch origin "ref1:ref1" "ref2:ref2" "ref3:ref3"
Run Code Online (Sandbox Code Playgroud)

让我们把这些常量值放到一个变量中

fetch_refspec="'ref1:ref1' 'ref2:ref2' 'ref3:ref3'"
Run Code Online (Sandbox Code Playgroud)

我看到了使用管道的解决方案,但我害怕以某种方式丢失输出。而且我不想使用文件进行缓存(tee命令)。

echo $refs | xargs git origin
Run Code Online (Sandbox Code Playgroud)

我不明白如何巧妙地做这件事。或者如果可能的话。
后来我想把输出放到一个变量中并分析它。

Ini*_*ian 5

不要使用变量,使用数组!

declare -a gitArgs=("ref1:ref1" "ref2:ref2" "ref3:ref3")
Run Code Online (Sandbox Code Playgroud)

并将其传递给您需要的命令,

git origin "${gitArgs[@]}"
Run Code Online (Sandbox Code Playgroud)