Strona 1 z 1
					
				[bash] problem przy porownaniu wartosci zmiennej
				: 14 sierpnia 2007, 14:36
				autor: fantomas
				mam maly problem z tym skryptem ;/ jest on do sprawdzania dzialania serwerow proxy. W pliku 1.txt mam liste ip i wywoluje program:
Kod: Zaznacz cały
#!/bin/bash
ilosc_ip_do_srawdzenia='grep -c * ip.txt'
liczba="1"
for $ilosc_ip_do_sprawdzenia>0
do
wywolane_ip=cat ip.txt | head -$liczba
strona=curl -x $wywolane_ip "http://wklej.org/"
sprawdzenie=grep obrazek $s -c -w -i
if $sprawdzenie > 0
then
echo "$sprawdzenie" >> /dobre.txt
fi
done
najpierw pobiera jedna linie z pliku ip.txt
pozniej curlem wchodzi przez proxy naq strone 
nastepnie szuka slowa klucza na stronie 
a pozniej jak znalazl przynajmniej jedno slowo klucz zapisuje ip do pliku dobre.txt
wynik dzialania:
Kod: Zaznacz cały
./1.sh: line 6: syntax error near unexpected token `>'
./1.sh: line 6: `for (($ilosc_ip_do_sprawdzenia > 0))'
 

 co robie nie tak ?;/ ==> ">" jest normalnym porownaniem wartosci czy jest wieksze czy mniejsze ;/
 
			 
			
					
				
				: 14 sierpnia 2007, 15:13
				autor: Lorenzo
				man bash
Rozdział gramatyka powłoki.
			 
			
					
				
				: 16 sierpnia 2007, 14:40
				autor: fantomas
				musze przyznac ze bash jest troche inaczej skonstruowany od delphi 

 juz rozumiem dzieki <piwo> 
[ Dodano: 2007-08-14, 21:21 ] 
jeszcze mam problem z funkcja 
Kod: Zaznacz cały
strona=`curl -x $wywolane_ip "jakas_www" 
sprawdzenie='grep -c 'mirror' $strona' 
jak wykonuje skrypt wszyskto dziala tylko wypisuje blad ;/ 
zle uzywam zmiennej strona? bo jak wpisuje samo grep -c 'mirror' jakas_www wszystko jest dobrze ;/ licze na chociaz podpowiedz ;/ troche trudno mi sie polapac w tym bashu bo caly czas bylem na windowsowym delphi ;/
//edit
używaj tagów code
mlyczek 
			 
			
					
				
				: 16 sierpnia 2007, 22:44
				autor: Gość
				fantomas pisze:strona=`curl -x $wywolane_ip "jakas_www"
Raczej tak :
Kod: Zaznacz cały
strona="$(curl -x ${wywolane_ip} jakas_www)"
 
fantomas pisze:sprawdzenie='grep -c 'mirror' $strona'
A to tak :
Kod: Zaznacz cały
sprawdzenie="$(grep -c 'mirror' ${strona})"
 
P.S.
Poprawki dotyczą tylko tych 2 linii, które tu podałeś - nie wiem jak masz z resztą 
Pozdrawiam
 
			 
			
					
				
				: 17 sierpnia 2007, 08:31
				autor: fantomas
				dzieki wielkie za odpowiedz dzieki Tobie zrozumialem troche wiecej ale nadal funkcja z grep wywala bledy ;/
Kod: Zaznacz cały
grep: unrecognized option `-->'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
czyli to samo co bylo 

 przeciez dobrze jej uzywam ;/ i grep mam zainstalowane w systemie ;/
aktualny skrypt:
Kod: Zaznacz cały
#!/bin/bash
d=`wc -l liczby.txt | sed -e "s/[ \ta-z.][ \ta-z.]*//g"`
for((licznik=1;licznik<$d;licznik++))
do
wywolane_ip="$(cat liczby.txt | head -$liczba)"
strona="$(curl -x ${wywolane_ip} "www.costam.pl
sprawdzenie="$(grep -c 'slowo_kluczowe' ${strona})"
if $sprawdzenie > 0
then
echo "$sprawdzenie" >> /dobre.txt
fi
done
juz dobrych pare dni sie z tym mecze ;/ i niewiem co moze byc nietak ;/
 
			 
			
					
				
				: 17 sierpnia 2007, 12:06
				autor: Gość
				Na razie poprawię Ci troszkę tylko to co powyżej napisałeś :
Kod: Zaznacz cały
#!/bin/bash 
d="$(wc -l liczby.txt | sed -e 's/[ \ta-z.][ \ta-z.]*//g')"
for ((licznik=1;licznik<$d;licznik++)); do
	wywolane_ip="$(cat liczby.txt | head -$liczba)" 
	strona="$(curl -x ${wywolane_ip} [url]http://www.jakiś_adres.pl[/url])"
	sprawdzenie="$(grep -c 'slowo_kluczowe' ${strona})" 
		if [ "$sprawdzenie" -lt 0 ] ; then 
			echo "$sprawdzenie" >> dobre.txt 
		fi 
done
A teraz pytanie ...
masz wpisane 
head -$liczba
... a gdzie masz zdefiniowaną wcześniej 
$liczba ?
Pozdrawiam
 
			 
			
					
				
				: 17 sierpnia 2007, 13:40
				autor: fantomas
				dzieki bardzo rzeczywiscie wielu rzeczy brakowalo ;/
ale nadal mi wywala blad ;/ taki sam jak wczesniej ;/
Kod: Zaznacz cały
grep: unrecognized option `-->'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
grep mozna stosowac tylko do plikow ? nieda sie do zmiennych dynamicznych ? bo moze od zlej strony na to patrze ?;/ ale wydawalo mi sie ze gdzies widzialem jak ktos grep uzywa do zmiennych ;/ 
[ Dodano: 2007-08-17, 13:48 ]
chyba nieda sie ... zrobilem ze zmienna zapisuje do pliku a uzywam grep plik i niewywala bledow dzieki za pomoc 
[ Dodano: 2007-08-17, 20:13 ]
no i nadal niedziala 

 mam takie cos ;/
Kod: Zaznacz cały
#!/bin/bash
d="$(wc -l liczby.txt | sed -e 's/[ \ta-z.][ \ta-z.]*//g')"
for((licznik=1;licznik<$d;licznik++)); do
        wywolane_ip="$(cat liczby.txt | head -$licznik)"
        strona="$(curl -m 60 -x ${wywolane_ip}  strona
        echo "$strona" > temp.txt
        sprawdzenie="$(grep -c 'mirror' temp.txt >> ilosc.txt)"
        sprawdzenie2="$(cat ilosc.txt | head -1)"
        if [ "$sprawdzenie2" -lt 0 ] ; then
                echo "$sprawdzenie" >> dobre.txt
        fi
done
no ale i tak cos jest nie tak bo na kazdej stronie ktora sprawdze niezapisuje mi zadnego ip do pliku dobre.txt ;/ manualnie sprawdzalem i wszystko dziala ;/ a tak nie 
