Python:我如何阅读(不是 运行)shell 脚本,并沿途插入参数

Python: how do I read (not run) a shell script, inserting arguments along the way

我有一个简单的 shell 脚本 script.sh:

echo "ubuntu:" | sudo chpasswd

我需要打开脚本,阅读它,插入参数,然后像这样将其保存为字符串:'echo "ubuntu:arg_passed_when_opening" | sudo chpasswd' 使用 Python.

建议的所有选项here实际执行脚本,这不是我想要的。

有什么建议吗?

您可以像读取任何文本文件一样执行此操作,我们可以使用 sys.argv 获取在 运行 运行 python 脚本时传递的参数。

例如:

import sys

with open('script.sh', 'r') as sfile:
    modified_file_contents = sfile.read().replace('', sys.argv[1])

使用此方法,modified_file_contents 是一个包含文件文本的字符串,但指定的变量替换为传递给 python 脚本的参数,当时它是 运行 .