netstat -an | grep hypen echo $ variable hypen | wc -l将netstat返回的值收集到变量中
如何收集的值netstat -an | grep echo $variable
| wc -l 到varibale conn_count。
netstat -an | grep hypen echo $ variable hypen | wc -l将netstat返回的值收集到变量中
如何收集的值netstat -an | grep echo $variable
| wc -l 到varibale conn_count。
最大的可移植性使用反引号:
conn_count=`netstat -an | grep ${variable} | wc -l`
如果你有一个更现代的外壳如bash,你可以使用$()
代替:
conn_count=$(netstat -an | grep ${variable} | wc -l)
$()
符号是更好,因为它更容易nest:
foo=$(netstat -an | grep $(head /path/fo/foo))
$ variable =“abc | efg | xyz rst | ghf | tcg” for i in $ variable do Conn_count = $(netstat -an | grep $(echo $ {i} | cut -d'|'-f3 )| wc -l) done 想找到第三个字段的netstat并将其收集到一个变量 – Kimi 2010-06-08 18:20:02
使用子shell“反引号”转义,if你希望能够使用它的SH,灰,及其变体:
thevariable=`netstat -an | grep echo $variable | wc -l`
如果你要保证能够进入bash或zsh的,你可以使用$()
语法来代替:
thevariable=$(netstat -an | grep echo $variable | wc -l)
我认为第一个也适用于(t)csh,但我不确定,因为我不使用它们。
这将做到这一点的管子字符之间的每个值:
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)
@all,'| 'grep'之后的wc -l'当然应该是'grep ... -c',请参阅无用的'wc -l'奖励:http://partmaps.org/era/unix/award.html#wc – Wrikken 2010-06-09 02:41:06