在python字符串中获取控制台输出

时间:2017-04-12 14:26:30

标签: python linux

我在python中获取一些linux代码输出时遇到问题。 我认为这是因为转义字符

我试图运行的命令

nmap 192.168.1.* -p T:80 --open | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'

我想用一个像

这样的字符串变量替换那个192.168.1。*
network = "192.168.1.*"
nmap + network + -p T:80 --open | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'

每次我尝试收到错误。 谢谢你的回复!

2 个答案:

答案 0 :(得分:0)

我将您的问题解释为与bash相关的问题

使用字符串变量的方式如下:

$ export network="192.168.1.*"
$ nmap $network -p T:80 --open | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'

我没有检查命令的其余部分,但是......

答案 1 :(得分:0)

我找到了这样的解决方案

command = "nmap "+network+ " -p T:80 --open | awk " + r"""'/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'"""
output = str(os.popen(command).read()).strip()
print output

非常感谢...