我想在Python文件中运行一个名为nn.sh
的Shell脚本(该脚本会不断地执行Linux命令),我正在使用以下代码:
from subprocess import call, Popen, PIPE
call(['/bin/sh', 'nn.sh', '172.20.125.44', '10', '>>', 'log.txt'])
这段代码应该是运行
nn.sh
,输入为172.20.125.44
和10
,并将结果存储在文件log.txt
中。当我运行此Python脚本时,它只在屏幕上显示运行nn.sh
的结果,并未将其保存在log.txt
文件中。然而,如果我输入命令:/bin/sh nn.sh 172.20.125.44 10 >> log.txt
在命令行中,所有数据都被正确保存到了文件
log.txt
中。你有任何想法吗?这里可能出了什么问题?
shell = True
来强制subprocess.call不转义任何内容,尽管这是一种安全问题并被认为是不良实践。 - Ryan Haining