如何通过python执行shell脚本

新手上路,请多包涵

我有一个脚本 abc.sh,其中包含带标志的命令列表。例子

//abc.sh
echo $FLAG_name
cp   $FLAG_file1   $FLAG_file2
echo 'file copied'

我想通过 python 代码执行这个脚本。说

//xyz.py

name = 'FUnCOder'
filename1  = 'aaa.txt'
filename2 = 'bbb.txt'

subprocess.call([abc.sh, name, filename1, filname2], stdout=PIPE, stderr=PIPE, shell=True)

这个电话不工作。

还有哪些选择?

shell 脚本文件也位于其他目录中。我希望输出进入日志。

原文由 Rishabh Agarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 319
1 个回答

通常你想使用 Popen 因为你之后有过程控制。尝试:

 import subprocess
process = subprocess.Popen(['abc.sh', name, filename1, filname2], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
process.wait() # Wait for process to complete.

# iterate on the stdout line by line
for line in process.stdout.readlines():
    print(line)

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题