如何 运行 来自变量的命令每行输出一次? -- 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
感谢您花时间提供帮助!
我正在尝试 运行 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