subprocess.run() 没有 return 预期的输出

subprocess.run() doesn't return the expected output

我正在尝试在 python 中执行 shell 脚本,但我没有得到预期的结果

script.sh

#!/bin/bash
file1=
file2=
cat $file1 $file2

python:

print(sp.run(/path/script.sh + " text1.txt text2.txt", shell=True, check=True, text=True, capture_output=True))

如果我运行终端上的脚本结果正确,我加入两个文件。 但是如果我 运行 python 代码似乎什么都不做。

以下代码段应该适合您:

import subprocess as sp

file_name = "path/to/script.sh"
file1 = "path/to/file1"
file2 = "path/to/file2"

output = sp.run([file_name, file1, file2], check=True, text=True, capture_output=True)
print(output.stdout)