首页 > 解决方案 > 如何在 Python 中将变量传递给 bash 命令

问题描述

我有一个 Python 脚本,它随机选择一个端口并将其传递给 bash 命令:

#!/usr/bin/env python
import random
import os

# Select a port at random
port = ['22', '23', '24']
selected_port = (random.choice(port))
# print 'selected_port

bashCommand = "ssh -p '${selected_port}' -i pi.rsa pi@192.168.1.xx"
os.system(bashCommand)

selected_port将变量传递给 my 的正确方法是什么bashCommand?目前我得到一个SyntaxError: EOL while scanning string literal

标签: pythonpython-2.7string-formatting

解决方案


使用 Python 的字符串插值机制之一:

bashCommand = "ssh -p '%s' -i pi.rsa pi@192.168.1.xx" % selected_port

或者

bashCommand = "ssh -p '{}' -i pi.rsa pi@192.168.1.xx".format(selected_port)

推荐阅读