繁体   English   中英

使用python从URL执行bash脚本

[英]Execute bash script from URL using python

假设我在http://mysite.com/myscript.sh中有一个文件,其中包含:

#!/bin/bash
echo "Hello $1"

从命令行,我可以使用以下命令执行脚本(无需下载):

bash <(curl -s http://mysite.com/myscript.sh) World

现在,我不想从命令行执行上述命令,而是想从python脚本执行它。 我尝试执行以下操作:

import os
os.system('bash <(curl -s http://mysite.com/myscript.sh) World')

...但是出现以下错误:

sh:-c:第0行:意外令牌'('附近的语法错误

如何使它在python中正确执行?

显然, os.system通过/bin/sh运行它的命令,这通常会使它链接到的任何shell都下降到不包含<(...)构造的兼容模式。 您可以通过将结果存储在临时文件中或使用其他级别的Shell来解决它。 丑陋,但是行得通。

os.system('bash -c "bash <(curl -s http://mysite.com/myscript.sh) World"')

有一个针对Python的libcurl,因此您不必费心处理命令行行为。 这是真正应该执行的功能列表 -尽管我从未运行过远程脚本。 如果您需要安装python绑定,请参见此处的说明。

import curl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM