经过一番搜索,我还没有找到解决方法.我认为搜索条件过于笼统.我想知道如何执行一些由其他来源生成的行(在bash提示符下).例如,我有一个
Python脚本,它动态生成许多bash命令并将它们打印到stdout.我希望这些行作为bash脚本执行,而不必将它们保存到磁盘.例如:
$python example.py touch 1 2 3 4 5 rm 1 2 3 4 5 echo "Done"
我想做的事情如下:
$python example.py | executeLines
bash中是否存在这样的命令/功能?有时其中一个命令可能以非零退出状态退出,因此附加&&每个命令然后运行:
$`python example.py`
不会总是工作,似乎是一个笨拙的解决方案.
你有没有尝试过
$python example.py | bash
它应该工作,因为这是一个常见的技巧.例如,监控工具munin有一个节点配置器(munin-node-configure),告诉你可以运行哪些插件,然后带一个–shell标志,它会吐出一堆ln -s命令来链接插件,直接用管道传输到bash.
甚至曾经有一个配置工具的工具 – 它已经超过15年了,我不记得是什么 – 你在哪里成为root并通过打开telnet会话到autoconfigurator完成配置并直接将输出发送到bash,与
# telnet example.com 7001 | bash
这些天我无法想象做那样的事情.