1
我查找了一個解決方案,但沒有看到與我的問題相同的解決方案。我使用運行命令結構來遠程運行主機名-i。所以這裏是我有:IF語句中的Python變量
ip = run("hostname -i")
if %s in run("nodetool -h localhost ring | awk '{ print $1}' | grep `hostname -i`") % ip:
print(green("The host is in the ring"))
我只是試圖檢查,當運行nodetool命令時,當前服務器的IP地址是否顯示。不是如何做到這一點。我是python的新手。
於是,我就分配「IP」的變量,有哪些激勵問題的錯誤:
>>> ip = 10.0.0.1
File "<stdin>", line 1
ip = 10.0.0.1
^
SyntaxError: invalid syntax
編輯:
I tried a few things and this seems to work:
>>> ip = local("hostname -i")
[localhost] local: hostname -i
10.88.17.59
>>> if ip > 1:
... print "yes"
... else:
... print "no"
...
yes
>>> if ip in local("hostname -i"):
... print "yes"
... else:
... print "no"
...
[localhost] local: hostname -i
10.88.17.59
yes
函數'run()'是否返回命令的輸出?你在這個輸出中尋找字符串'%s'嗎? – jedwards
你的錯誤是什麼? – Josh
感謝您的回覆。我禁用了詳細的輸出。 run()只是在已定義的服務器列表上「遠程運行」命令。我在猜測字符串部分。我想過要做一個for循環,但每個服務器都會有不同的IP來查詢。所以,我卡住了。 – Kryten