在bash中从循环执行python的输出

时间:2014-05-28 08:05:25

标签: python arrays bash eval execution

我写了一个包含在循环中的python命令的bash :(脚本的一部分)

#!/bin/bash

ARG=( $(echo "${@:3}"))
for (( i=1; i<=$#-3; i++ ))
do
python -c "print('<Command with variables>' * 1)"
done

当我运行它时,取决于我的args的数量,例如我有这个输出:

nohup command-a &
nohup command-b &
nohup command-c &

如何立即从bash执行输出行?

我可以告诉python命令在每次迭代中运行它们吗?怎么样?

谢谢

2 个答案:

答案 0 :(得分:1)

你可以通过在子shell中执行python代码并在之后评估该shell的内容来实现这一点。

eval $(python -c ...)

$()会返回您可以使用eval

评估的字符串

答案 1 :(得分:0)

你问两个问题。我只能回答第一个问题:

如果要运行进入标准输出的命令,只需将它们重定向到bash:

python -c 'print "ls"' | bash