Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam!
Pisze sobie universalny skrypcik w perlu do wysylania karteczek winpopup no i natknalem sie w perlu na to ze chce wynik polecenia systemowego wpisacw zmienna ale co mi nie wychodzi:
$komp = `nmblookup -A "$ip" |grep -v "<GROUP>" | awk '($2 == "<00>") {print $1}' | tr -d 'n'` ; printf "$komp n" ;
zmienna ip jest zadeklarowana wczesniej, pod zmienna komp powinna byc nazwa kompa ktorego ip podalem w zmiennej ip.
Blad wykonania tego polecenia to:
awk: line 1: syntax error at or near ==
Co powinienem poprawic ?
Offline
pokaż więcej skryptu.
Deklaracje zmiennych
Offline
O to cały skrypt:
#!/usr/bin/perl if(@ARGV) { $ip = $ARGV[0] ; if ($ip =~ /(d+.d+.d+.d+)/) { printf "$1 n"; $tresc_popup = $ARGV[1] ; $komp = `nmblookup -A "$ip" |grep -v "<GROUP>" | awk '($2 == "<00>") {print $1}' | tr -d 'n'` ; printf "$komp n" ; system "echo "$tresc_popup" | smbclient -U "Maverick" -I "$ip" -M "$komp" " ; } } else { printf "Uruchom podając jako parametry ip i treśc wiadomości. n"; }
Co tu poprawić powinienem ?
Offline
sorry że nie na temat bo nie mam odp. niestety na twoje pytanie ale mam prośbe ze jak skonczysz skrypt i ci zadziała to mi go przeslij bo by sie takie cos przydalo : zygamen@interia.pl -> jesli oczywiscie to jest mozliwe
dzieki
Offline
Zamiast ($2 == "<00>")
wpisz
($2 -eq "<00>")
U mnie dziala ;))
Pozdrawiam
Offline
mnie poprawieniu tego co napisałeś przy samym uruchamianiu (nawet bez parametrów)
pokazuje się błąd:
Scalar found where operator expected at ./popup line 14, near ""echo "$tresc_popup"
(Missing operator before $tresc_popup?)
String found where operator expected at ./popup line 14, near "$tresc_popup" | smbclient -U ""
(Missing operator before " | smbclient -U "?)
Bareword found where operator expected at ./popup line 14, near "" | smbclient -U "mzegan"
(Missing operator before mzegan?)
String found where operator expected at ./popup line 14, near "mzegan" -I ""
Scalar found where operator expected at ./popup line 14, near "" -I "$ip"
(Missing operator before $ip?)
String found where operator expected at ./popup line 15, near """
(Might be a runaway multi-line "" string starting on line 14)
(Missing semicolon on previous line?)
Scalar found where operator expected at ./popup line 15, near ""$komp"
(Missing operator before $komp?)
String found where operator expected at ./popup line 15, near "$komp" ""
(Missing operator before " "?)
syntax error at ./popup line 14, near ""echo "$tresc_popup"
Execution of ./popup aborted due to compilation errors.
Jak wpisuje parametry to też jest kapa robie to tak:
skrypt IP TRESC
co robie ewentualnie źle?
Offline
Jako root wlaczasz ?:>
U mnie niby dziala ale wpisuje jkakies ciagi cyferek zamist nazwy kompa :(
Offline
u mnie dalej nie chodzi uruchomiłem jako root,
wywoluje to nastepująco (bo moze tu cos zle robie)
skrypt IP tresc
czy mają być jakieś pauzy albo co?
Offline
Zobacz tak :
system "echo $tresc_popup | smbclient -U Maverick -I $ip -M $komp" ;
Offline
Jak na razie sie wyklada na tej linijce
$komp = `nmblookup -A "$ip" |grep -v "<GROUP>" | awk '($2 eq "<00>") {print $1}' | tr -d 'n'` ;
wychodza z tego jakies ciagi ca ma wyjsc nazwa kompa :(
Offline
Ja sie tym zajme ale jak tylko bedzie to dzialalo w 100 % :)
Offline
Witam! Po dluzszej przerwie usiadlem do tego no i mam taki maly blad:
Tresc skryptu:
#!/usr/bin/perl if(@ARGV) { $ip = $ARGV[0] ; if ($ip =~ /(d+.d+.d+.d+)/) { printf "$1 n"; $komp = `nmblookup -A "$ip" |grep -v "<GROUP>" | awk '($2 -eq "<00>") {print $1}' | tr -d 'n'` ; printf "$komp n" ; } } else { printf "Uruchom podając jako parametry ip i treśc wiadomości. n"; }
Po uruchomieniu tego skryptu komenda perl netsend 192.168.0.10 mam taki wynik:
192.168.0.10
192,16800,1192,16800,1192,16800,1192,16800,1192,16800,1192,16800,1192,16800,1192,16800,1
A powinna sie pokazac nazwa kompa w sieci lokalnej o tym ip, co mma zle ?
Offline