我如何将 python 变量传递给 shell 命令
How can i pass python variable to a shell command
我有一个 python 脚本,其中包含网络主机、用户名和密码变量,我正试图将其传递到同一个 python 脚本中的 shell 命令。
output = subprocess.check_output(['curl -s -G -u username:password -k \"https://webhost/something/something\"'], shell=True, encoding='utf-8')
你能帮我看看我该怎么做吗?我尝试了很多东西,但 none 成功了。
谢谢
试试这个,
username = 'abc'
password = 'def'
webhost = '1.2.3.4'
output = subprocess.check_output([f'curl -s -G -u {username}:{password} -k \"https://{webhost}/something/something\"'], shell=True, encoding='utf-8')
它被称为 f 字符串。 https://docs.python.org/3/tutorial/inputoutput.html
在字符串开始之前添加一个 f,然后将要插入的变量括在花括号中。
您可以使用此语法将变量传递到字符串中。
您也可以将变量作为列表传递如下,命令中的每个参数都是一个单独的项目,您可以在要解析的列表项目上使用 f 字符串,这样,
username = 'abc'
password = 'def'
webhost = '1.2.3.4'
output = subprocess.check_output(['curl',
'-s',
'-G',
'-u',
f'{username}:{password}',
'-k',
f'\"https://{webhost}/something/something\"'],
encoding = 'utf-8')
不要为 shell 构造要解析的字符串;只需提供一个列表。该列表可以直接包含字符串值变量(或从变量构造的字符串)。
username = ...
password = ...
url = ...
output = subprocess.check_output([
'curl',
'-s',
'-G',
'-u',
f'{username}:{password}',
'-k',
url
], encoding='utf-8')
我有一个 python 脚本,其中包含网络主机、用户名和密码变量,我正试图将其传递到同一个 python 脚本中的 shell 命令。
output = subprocess.check_output(['curl -s -G -u username:password -k \"https://webhost/something/something\"'], shell=True, encoding='utf-8')
你能帮我看看我该怎么做吗?我尝试了很多东西,但 none 成功了。
谢谢
试试这个,
username = 'abc'
password = 'def'
webhost = '1.2.3.4'
output = subprocess.check_output([f'curl -s -G -u {username}:{password} -k \"https://{webhost}/something/something\"'], shell=True, encoding='utf-8')
它被称为 f 字符串。 https://docs.python.org/3/tutorial/inputoutput.html
在字符串开始之前添加一个 f,然后将要插入的变量括在花括号中。
您可以使用此语法将变量传递到字符串中。
您也可以将变量作为列表传递如下,命令中的每个参数都是一个单独的项目,您可以在要解析的列表项目上使用 f 字符串,这样,
username = 'abc'
password = 'def'
webhost = '1.2.3.4'
output = subprocess.check_output(['curl',
'-s',
'-G',
'-u',
f'{username}:{password}',
'-k',
f'\"https://{webhost}/something/something\"'],
encoding = 'utf-8')
不要为 shell 构造要解析的字符串;只需提供一个列表。该列表可以直接包含字符串值变量(或从变量构造的字符串)。
username = ...
password = ...
url = ...
output = subprocess.check_output([
'curl',
'-s',
'-G',
'-u',
f'{username}:{password}',
'-k',
url
], encoding='utf-8')