需要在 运行 时间向 Unix 脚本传递参数

need to pass parameter to Unix script at run time

我有 shell 代码需要用 python 变量初始化

注意:var 是一个 python 变量,它的值是 /d/demo/f.txt

需要将 python 变量 var 传递给我下面的 shell 脚本

var='/d/demo/f.txt'

script="""

( 
echo "From : xyz"
echo "To : xyz"
cat var
) |sendmail -t 

"""
os.system("bash -c '%s' % script ")

分配的 var 值未传递给 cat var 任何解决方案表示赞赏

使用 f 字符串将变量替换到脚本中。如果它有特殊字符,请使用 shlex.quote() 对其进行转义。

import shlex

var='/d/demo/f.txt'
from='xyz'
to='xyz'

script=rf"""

( 
printf 'From: %s\nTo: %s\n' {shlex.quote(from)} {shlex.quote(to)}
cat {shlex.quote(var)}
) |sendmail -t 

"""
os.system(script)