2013-07-16 2 views
0

문제가 있습니다. 나는 잠시 에코를 보여줄 필요가있다, 나는 두 개의 에코 첫 번째 작업을 사용하지만 두 번째는 에러를 준다.Bash 오류가 명령을 에코합니다.

#!/bin/bash 
conexiuni="/tmp/conexiuni" 
if [ "$1" != "" ]; then 
netstat -tuan | grep $1 | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n > $conexiuni 
else 
netstat -tuan | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n > $conexiuni 
fi 

cat $conexiuni | while read line 
do 
    con=`echo ''$line'' | awk '{print $1}'` 
    ip=`echo ''$line'' | awk '{print $2}'` 
    if [ "$con" -gt "4" ]; then 
     `echo -e "$ip" >> /var/log/drop_sc_ip` 
     `echo -e "$ip"` 
    fi 
done 
if [ -f "$conexiuni" ]; 
then 
    `rm -rf $conexiuni` 
fi 

오류 :

./show_conn: line 15: 8.97.80.2: command not found 
./show_conn: line 15: 8.76.109.13: command not found 
./show_conn: line 15: 8.33.15.2: command not found 
./show_conn: line 15: 9.118.226.3: command not found 

답변

1

당신은 역 따옴표없이이 부분을 작성할 수 있습니다 또한

if [ "$con" -gt "4" ]; then 
     echo -e "$ip" >> /var/log/drop_sc_ip 
     echo -e "$ip" 
fi 

같은이 부분에 다음 역 따옴표와

rm -rf $conexiuni 

, 그것은 먼저 th 내부에있는 것을 실행합니다. backticks를 실행 한 다음 backticks의 출력을 실행하려고 시도합니다.

루프 변경 :

while read con ip 
do 
    if [ "$con" -gt "4" ]; then 
     echo -e "$ip" >> /var/log/drop_sc_ip 
     echo -e "$ip" 
    fi 
done < $conexiuni 
+0

가 감사를! 그것은 작동하고 그것은 빨리 돌연변이입니다. – Cosmin

관련 문제