需要在 运行 时间向 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)
我有 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)