Я искал решение, но ни один из тех, что я видел, не отличается от моей проблемы. Я использую ткань с командой run для запуска имени хоста -i удаленно. Так вот, что у меня есть:Переменные Python в инструкции IF
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"))
Я просто пытаюсь проверить, если IP-адрес текущего сервера появляется при выполнении команды nodetool. Не так, как это сделать. Я новичок в python.
Так я пытался присвоить «IP» к переменной и была ошибка, которая стимулировало вопрос:
>>> ip = 10.0.0.1
File "<stdin>", line 1
ip = 10.0.0.1
^
SyntaxError: invalid syntax
EDIT:
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