Python Linux命令在cmd下不工作

Python Linux命令在cmd下不工作,python,Python,请告诉我我的以下代码有什么问题: def ume(): cmd = None p = r'/myfolder/xyz' cmd = ["who am i | awk '{print $1}'", "date"] fh = open(p, 'ab+') try: b = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh) b.wait()

请告诉我我的以下代码有什么问题:

def ume():
    cmd = None
    p = r'/myfolder/xyz'
    cmd = ["who am i | awk '{print $1}'", "date"]
    fh = open(p, 'ab+')
    try:
       b = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh)
       b.wait()
       fh.flush()
    finally:
       fh.close()

ume()
它没有在
xyz
文件中追加
date
输出。仅给出此命令的输出:

(我是谁?{print$1}'

我希望两个命令的o/p都应该写在一行中,用一个空格,如下所示


mmd周二4月19日13:25:35 UTC 2016

如果默认shell为bash,则可以尝试以下代码:

def ume():
    cmd = None
    p = r'temp.txt'
    cmd = ["export wai=`whoami | awk '{print $1}'`;" "export dt=`date`;" "echo $wai $dt"]
    fh = open(p, 'ab+')
    try:
       b = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh)
       b.wait()
       fh.flush()
    finally:
       fh.close()
ume()

如果默认shell为bash,则可以尝试以下代码:

def ume():
    cmd = None
    p = r'temp.txt'
    cmd = ["export wai=`whoami | awk '{print $1}'`;" "export dt=`date`;" "echo $wai $dt"]
    fh = open(p, 'ab+')
    try:
       b = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh)
       b.wait()
       fh.flush()
    finally:
       fh.close()
ume()

太棒了。非常感谢。你是个天才。太棒了。非常感谢。你是个天才。