Unix-使用管道内部监视命令(按状态分组的连接数)

Unix-使用管道内部监视命令(按状态分组的连接数),unix,pipe,netstat,Unix,Pipe,Netstat,我试图在按“状态”分组时计算连接的数量 该命令可实现该目标: 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 -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c

我试图在按“状态”分组时计算连接的数量

该命令可实现该目标:

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 -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c"
我正在尝试将我的命令与
watch
命令结合起来,如下所示:

  4 CLOSE_WAIT
  1 established)
127 ESTABLISHED
  1 Foreign
  2 LAST_ACK
 39 LISTEN
  9 TIME_WAIT
watch -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c"
但是,输出只是
netstat-ant
命令的输出(而不是管道的最后一个输出)

如何将该复杂命令与
watch
一起使用?

此操作有效:

watch -n1 "netstat -ant | awk '{ print \$6}' | sort | uniq -c"
您正在传递一个双引号字符串,该字符串恰好包含单引号。在双引号字符串中,必须转义表示为文本的
$
s(
$6
=>
\$6
)。 如果您没有逃脱它,
watch
可能会收到

"netstat -ant | awk '{ print }' | sort | uniq -c"
(因为
$6
很可能是未设置的),这将解释您得到的输出(
awk'{print}
在管道中基本上是不可操作的,就像
cat