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