我试图计算连接数量,同时按照“状态”对它们进行灌输。
此命令实现了这一目标:
netstat -ant | awk '{ print $6}' | sort | uniq -c
提供如下输出:
4 CLOSE_WAIT
1 established)
127 ESTABLISHED
1 Foreign
2 LAST_ACK
39 LISTEN
9 TIME_WAIT
我正在尝试将我的命令与watch
命令结合起来:
watch -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c"
但是,输出只是netstat -ant
命令(而不是管道的最后一个输出)。
如何将该复杂命令与watch
一起使用?
答案 0 :(得分:2)
这有效:
watch -n1 "netstat -ant | awk '{ print \$6}' | sort | uniq -c"
您传递的是一个双引号字符串,恰好包含单引号。在双引号字符串中,$
表示文字$
必须转义($6
=> \$6
)。
当你不逃避它时,watch
可能会收到
"netstat -ant | awk '{ print }' | sort | uniq -c"
(由于$6
可能未设置),这可以解释您获得的输出(管道中的awk '{ print }'
基本上是无操作,如cat
)。