我想要一个python程序来生成一个shell子命令,shell的stdout被写入python父项的stdout。
python脚本将作为CGI运行,因此shell输出应该发送回浏览器。
答案 0 :(得分:0)
正如python subprocess module docs告诉(强调我的)
stdin,stdout和stderr分别指定执行程序的标准输入,标准输出和标准错误文件句柄。有效值为PIPE,现有文件描述符(正整数),现有文件对象和无。 PIPE表示应该创建一个新的子管道。 默认设置为None,不会发生重定向;子项的文件句柄将从父项继承。此外,stderr可以是STDOUT,它表示来自子进程的stderr数据应该被捕获到与stdout相同的文件句柄中。
所以,它应该像
一样简单subprocess.call(["your_shell_command", /*command line arguments, if any*/])
E.g。
subprocess.call(["ls", "-l"])
subprocess.call(["mkdir", "newdir"])
subprocess.call("your_shell_script.sh")