将netstat返回的值收集到变量中

时间:2010-06-08 18:01:01

标签: shell scripting unix

netstat -an | grep hypen echo $ variable hypen | wc -l <​​/ p>

如何收集 netstat -an |的值grep echo $variable | wc -l <​​/ strong> 到一个varibale conn_count。

3 个答案:

答案 0 :(得分:1)

使用反引号实现最大可移植性:

conn_count=`netstat -an | grep ${variable} | wc -l`

如果您有更现代的shell,例如bash,则可以使用$()代替:

conn_count=$(netstat -an | grep ${variable} | wc -l)

$()表示法更好,因为它更容易嵌套:

foo=$(netstat -an | grep $(head /path/fo/foo))

答案 1 :(得分:1)

如果您希望能够将它用于sh,ash及其变体,请使用子shell“反引号”转义:

thevariable=`netstat -an | grep echo $variable | wc -l`

如果您可以保证能够访问bash或zsh,则可以使用$()语法:

thevariable=$(netstat -an | grep echo $variable | wc -l)

我认为第一个也适用于(t)csh,但我不确定,因为我不使用它们。

答案 2 :(得分:0)

这将对管道字符之间的每个值执行此操作:

variable="abc|efg|xyz rst|ghf|tcg"
saveIFS=$IFS
IFS='|'
for i in $variable
do
    Conn_count=$(netstat -an | grep "$i" | wc -l)
done
IFS=$saveIFS

这只会对第三个值执行此操作:

variable="abc|efg|xyz rst|ghf|tcg"
saveIFS=$IFS
IFS='|'
i=($variable)
IFS=$saveIFS
Conn_count=$(netstat -an | grep "${i[2]}" | wc -l)