簡體   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