2010-06-08 6 views
0

netstat -an | grep 하이픈 echo $ 변수 하이픈 | wc -lnetstat에서 반환 된 값을 변수로 수집합니다.

값을 수집하는 방법 netstat -an | grep echo $variable | wc -l ~ varibale conn_count. 최대 휴대

+0

@all,'| wc -l''grep'은 당연히'grep ... -c'이어야합니다.'wc -l' 상을 쓸모 없게 사용하십시오 : http://partmaps.org/era/unix/award.html#wc – Wrikken

답변

1

사용 역 따옴표 : 당신은 bash는 같은 현대 쉘이있는 경우

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

대신 $()을 사용할 수 있습니다 : 그것은에 쉽기 때문에

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

$() 표기법이 더 낫다 중첩 :

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

$ variable = "abc | efg | xyz rst | ghf | tcg" 에 대해 을 입력하십시오. Conn_count = $ (netstat -an | grep $ (echo $ {i} | cut -d '|'-f3) | wc -l) done 세 번째 필드의 netstat을 찾아서 변수로 수집하려고합니다. – Kimi

1

부울 "backticks"이스케이프를 사용하십시오. 당신은 쉬, ​​화산재에 사용할 수 있도록하려면, 그 변형 :

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

: 당신은 비난이나 zsh을 액세스를 보장 할 경우

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

, 당신은 대신 $() 구문을 사용할 수 있습니다 나는 첫 번째도 csh와 함께 작동한다고 생각하지만, 나는 그것들을 사용하지 않았기 때문에 확신하지 못한다.

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) 
관련 문제