2016-04-19 21 views
1

の下で動作していないあなたは私が私の次のコードが間違っているか知っている聞かせていただけます。LinuxのコマンドはCMD

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出力を追加しません。ただ、このコマンドの出力を与える:

(私が誰| awkの「{$ 1印刷}」

を、私は両方のコマンドのO/Pは以下のようにスペースを持つ単一の行に書く必要がありますしたいです。

MMD火4月19日13時25分35秒UTC 2016

答えて

0

デフォルトのシェルは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() 
+0

恐ろしく..ありがとう。あなたは天才です。 – abhiN