如何返回子进程的args.Popen

时间:2018-02-15 18:02:50

标签: python bash subprocess popen

我正在运行一个bash脚本,其中包含python中的许多其他命令

mybash.sh:

#!/bin/bash
var=10
echo variable is equal to $var

并在运行.sh

时在python内部
if echo variable is equal to $var == echo variable is equal to 10:
print ('variable is 10')

我尝试通过:

process = Popen('sh mybash.sh', shell=True, stdout=PIPE, stdin=PIPE)

我尝试在bash脚本中获取每个命令的args值,但process.args只返回sh mybash.sh。如何在脚本执行时逐行返回每个命令的args值?

1 个答案:

答案 0 :(得分:1)

您没有在python中运行bash脚本。您正在运行运行mybash.sh脚本的bash解释器(sh)。您无法从python访问单个bash命令,但可以使用-x标志。

  CREATE MATERIALIZED VIEW LOG ON "CSTST"."LLATTRDATA"
 PCTFREE 10 PCTUSED 30 INITRANS 1 MAXTRANS 255 LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "CSPRD" 
  WITH ROWID INCLUDING NEW VALUES;