如何 运行 来自变量的命令每行输出一次? -- bash

How to run a command from a variables output once per line? -- bash

感谢您花时间提供帮助!

我正在尝试 运行 1 次以变量作为参数的命令。问题是,该变量有多行,我需要 运行 对每行执行 1 次命令作为参数。

示例脚本

VAR1=command1

"${VAR1}" | xargs -L1 -d "\n command2$i

VAR1 的示例输出是

1111
2222
3333
4444
5555

我需要 运行 command2 每行一次,所以

command2 1111
command2 2222
command2 3333
command2 4444
command2 5555

我也试过了,

VAR1=command1

"${VAR1}" | while read line ; do command2$i

还有这个

VAR1=command1

"${VAR1}" | while read line ; do command2"${VAR1}"

感谢您的宝贵时间!

对于 xargs,您可以使用“此处字符串”:

xargs -L1 command2 <<< "$var1"

或者干脆

printf '%s\n' "$var1"  | xargs -L1 command2

和循环类似,但你需要真正使用循环变量:

while read -r line ; do
    command2 "$line"
done <<< "$var1"

或者,再次,

printf '%s\n' "$var1" | while read -r line ; do
    command2 "$line"
done