2017-08-08 295 views
0

我想執行一個bash命令作爲我的curl語句的一部分。 bash命令假設執行一個顯示一些消息的python文件。我該如何去實現這一目標?這裏是我的嘗試,但不能正常工作,並顯示該命令的字符串,而不是實際執行bash命令的:在curl語句中運行bash命令

curl -X POST --data-urlencode 'payload={"channel": "#pxc-wsrep-test", "username": "webhookbot", "text": python test2.py, "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/F065ZJS3N/B4JT9K2TM/5KWZRYFIGhLL0MimiHAW6Gbz 

下面是我的python腳本,test2.py,我要執行:

from subprocess import Popen, PIPE, STDOUT 

cmd = 'mysql -uroot -psecret -e"show status like \'wsrep_local_state_comment\'\G"' 
p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True) 

output = p.stdout.read() 
print output 

所以我試圖運行python腳本內捲曲,如下面所示: 從子進口POPEN,PIPE,STDOUT 導入請求

paylod={"text": 'mysql -uroot -psecret -e"show status like \'wsrep_local_state_comment\'\G"'} 
r = request.post('https://hooks.slack.com/services/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', data=payload) 
print(r.test) 
{ 
    "form": { 
     "test": 'mysql -uroot -psecret -e"show status like \'wsrep_local_state_comment\'\G"' 
    }, 
} 

但即使安裝pip和請求後,我仍然收到以下錯誤。

Traceback (most recent call last): 
    File "test.py", line 5, in <module> 
    r = request.post('https://hooks.slack.com/services/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', data=payload) 
NameError: name 'request' is not defined 
+0

的反應,我認爲你有一個向後的那樣簡單。如何將curl語句包含在bash腳本中? – dawg

+0

你可以給我一個例子嗎?因爲捲曲,我只是想發佈一條消息,這是執行我的bash命令的結果。 –

+0

你可以直接從Python運行curl命令。只需選擇您想要使用的膠水:Bash或Python。 curl不是一種編程語言。 – dawg

回答

-1

您可以使用反引號或$命令來運行另一個命令

例如

echo hi`echo bye` 

OR

echo hi$(echo bye) 
0

我不認爲我們需要的東西太複雜這裏很多。如果我們可以訪問示例中的python腳本,我們可以使用requestspycurl來完成python中的工作。

它可以像使用POST方法與數據字典中提到here

編輯基於我們最新的留言談話

import requests # make sure we have requests installed or else use urllib 
payload={"text": 'mysql -uroot -psecret -e"show status like \'wsrep_local_state_comment\'\G"'} 
r = requests.post('https://hooks.slack.com/services/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', data=payload) 
print(r.status_code) 
print(r.content) 
+0

因此,我嘗試使用您的建議改變張貼上面,但似乎沒有工作。 –

+0

您是否安裝了請求?使用pip來安裝請求或使用內置的urllib mofules。請求是您需要導入請求的模塊。 – Addy