LINUX.ORG.RU

Как сложить вывод в for ?

 


0

1

Добрый день! Есть скриптик:

for stream in `echo -e $1 | tr "," "\n"`
	do
		echo "stat $stream | netcat $ip_ats 23 -q 1 | grep $reg | wc -l
		
done

аргумент один, потоки задаются через запятую, скрипт по каждому потоку собирает информацию неткатом и выводит количество найденных совпадений.

root@serv:~/scripts/# ./test.sh 12,34
20
28

Вопрос! Как сложить это количество и получить обшее? без использования лишних файлов



Последнее исправление: quntm (всего исправлений: 2)

foo=0
for stream in `echo -e $1 | tr "," "\n"`
	do
		bar=$(echo "stat $stream | netcat $ip_ats 23 -q 1 | grep $reg | wc -l)
                let "foo=foo+bar"
		
done
echo $foo
Deleted
()
for stream in `echo -e $1 | tr "," "\n"`
	do
		echo "stat $stream | netcat $ip_ats 23 -q 1 | grep $reg
		
done | wc -l
anonymous
()
Ответ на: комментарий от Deleted

Ай, всё же просто) Спасибо. Тему можно закрыть

quntm
() автор топика

Лучше вместо безумной конструкции `echo -e $1 | tr "," "\n"` сделать как-то так:

for stream in $@
	do
		echo "stat $stream | netcat $ip_ats 23 -q 1 | grep $reg
		
done | wc -l

И запускать с аргументами через пробел, т.е. ./test.sh 12 34 56

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.