我有一个主机列表,我试图迭代ssh连接。在ruby中我可以使用#{variable}来访问命令中的变量,我应该为python做什么?
我在以下python代码中包含了ruby语法,作为我喜欢该功能的占位符。这样做的pythonic方法是什么?
h = """
foo-pants-linux-001
foo-pants-linux-002
foo-pants-linux-003
foo-pants-linux-004
foo-pants-linux-005
"""
hosts = h.split()
for host in hosts:
subprocess.check_output("ssh foobar@#{host} `echo hi!`")
答案 0 :(得分:1)
您可以使用modulo(def key = 'some key'
def map = [:]
def gstringKey = "${key.toUpperCase()}"
map[gstringKey] = 'value' // here
assert map.get('SOME KEY') == null
)或%
:
.format(..)
subprocess.check_output("ssh foobar@%s `echo hi!`"%host)
subprocess.check_output("ssh foobar@{host} `echo hi!`".format(host=host))
subprocess.check_output("ssh foobar@{} `echo hi!`".format(host))
是格式说明符,意味着您获取主机的字符串值。
如果您想要引入多个命名的变量,可以使用%s
,然后使用明确命名的参数调用{host}
。
您还可以使用format()
,这意味着您可以在{}
的参数中使用下一个元素。