如何在Python中将变量传递给bash命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在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变量传递给我的bashCommand的正确方法是什么?目前我正在获得SyntaxError: EOL while scanning string literal

答案

使用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)

以上是关于如何在Python中将变量传递给bash命令的主要内容,如果未能解决你的问题,请参考以下文章

在 Bash 脚本中将 Telnet 命令传递给 SSH

通过回声管道将python变量(字符串)传递给bash命令[重复]

将bash变量传递给python命令[关闭]

从 bash 脚本中将日期传递给 sqlplus 命令

如何将 Bash 变量传递给 Python?

如何在 docker run 命令中将 Java 选项/变量传递给 Spring Boot 应用程序