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

Posted

技术标签:

【中文标题】在bash中从循环执行python的输出【英文标题】:Executing output of python from loop in bash 【发布时间】:2014-05-28 08:05:25 【问题描述】:

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

#!/bin/bash

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

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

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

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

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

谢谢

【问题讨论】:

【参考方案1】:

您可以通过在子 shell 中执行 python 代码并随后评估该 shell 的内容来实现。

eval $(python -c ...)

$() 返回一个可以用eval 评估的字符串

【讨论】:

【参考方案2】:

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

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

python -c 'print "ls"' | bash

【讨论】:

好的,你的回答对我的两个问题都有好处......所以我可以做到:do python -c "('nohup &lt;command&gt; &amp;') * 1" | bash 它应该可以工作

以上是关于在bash中从循环执行python的输出的主要内容,如果未能解决你的问题,请参考以下文章

4.pytho while 循环

在 Python 中从 For 循环中存储多个矩阵

从 bash 脚本向 python 传递参数

在 Bash 中从文本文件创建数组

在 Python 中从导入的模块导入时输出 [重复]

如何在 Windows 10 中从 bash 提示符运行 python '__main__' 程序文件?