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