【问题标题】:Executing output of python from loop in bash在bash中从循环执行python的输出
【发布时间】: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 命令在每次迭代中运行它们吗?怎么样?

谢谢

【问题讨论】:

    标签: python arrays bash eval execution


    【解决方案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 它应该可以工作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 2019-02-17
      相关资源
      最近更新 更多