Pythonで次の (作業中の)コマンドを実行する必要があります。
ip route list dev eth0 | awk ' /^default/ {print $3}'
を使用subprocess
して、次のことを行う必要があります。
first = "ip route list dev eth0"
second = "awk ' /^default/ {print $3}'"
p1 = subprocess.Popen(first.split(), stdout=subprocess.PIPE)
p2 = subprocess.Popen(second.split(), stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
output = p2.communicate()[0]
で問題が発生しましたp2
。私は得る:
>>> awk: cmd. line:1: '
awk: cmd. line:1: ^ invalid char ''' in expression
私は何をすべきか?端末では完全に機能します。