running multiple bash commands with subprocess

后端 未结 5 1856
盖世英雄少女心
盖世英雄少女心 2020-11-27 12:22

If I run echo a; echo b in bash the result will be that both commands are run. However if I use subprocess then the first command is run, printing out the whole

5条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-27 13:22

    You have to use shell=True in subprocess and no shlex.split:

    def subprocess_cmd(command):
        process = subprocess.Popen(command,stdout=subprocess.PIPE, shell=True)
        proc_stdout = process.communicate()[0].strip()
        print proc_stdout
    
    subprocess_cmd('echo a; echo b')
    

    returns:

    a
    b
    

提交回复
热议问题