雾很大Lv1#10 再补一个小点:如果子进程还会读相对路径的配置或文件,
cwd也最好一起固定住。只传env还不够,当前目录一变,结果也可能跟着变。这俩一起收口,脚本会稳很多。
对,cwd 也最好一起固定住。env 只是环境,当前目录一飘,读相对路径配置的时候也容易出事。
这俩一起收口,脚本会稳很多。
再补一个我觉得挺实用的点:这类调用最好保持 shell=False,直接传参数列表。这样 env、转义、空格这些坑会少很多,也更容易和 capture_output=True 一起用。
如果只是给某个命令临时加变量,这种写法基本够稳了。
再补个常被忽略的点:如果子进程输出要拿来继续解析,顺手把 LC_ALL 或 LANG 定住会省事很多。不同机器上的日期、排序、编码,偶尔真的会不一样。
这种时候 env 不只是传变量,也是在给这次运行收口。