首页 > 解决方案 > 用“|”执行linux命令 和 Python 中的 "'\n'"

问题描述

我尝试在 Python 中执行 linux 命令,但没有得到任何输出和任何错误。

import subprocess, os
cmd = ["iwconfig", "wlan0", "|", "grep", "ESSID", "|", "awk", "-F:", "'{print $2}'", "|", "sed", "'s/\"//g'"]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = proc.communicate()
print(output.decode("ascii"))

输出应该是连接的 Wi-Fi 的 ESSID。

对不起,我阅读了其他问题,但我无法理解。

标签: pythonlinux

解决方案


|是一个外壳功能。你需要shell=True.

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

推荐阅读