Potrzebujesz pomocy z C, C++, perl, python, itp.
stoperekk
Posty: 27 Rejestracja: 06 marca 2009, 16:44
Post
autor: stoperekk » 21 lutego 2011, 03:06
W jaki sposób mogę zapisać wynik polecenia:
Kod: Zaznacz cały
/sbin/ifconfig wlan0 | head -n 2 | tail -n 1 | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1
do zmiennej
Coś w tym stylu, ale to nie działa
Kod: Zaznacz cały
my $x = system("/sbin/ifconfig wlan0 | head -n 2 | tail -n 1 | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1");
mrc000
Posty: 15 Rejestracja: 02 marca 2010, 23:21
Lokalizacja: /home
Post
autor: mrc000 » 21 lutego 2011, 11:55
Od razu mówie, nie znam perla. Na wzór basha to zapis może wyglądać tak:
Kod: Zaznacz cały
my $x = `/sbin/ifconfig wlan0 | head -n 2 | tail -n 1 | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1`;
lessmian2
Member
Posty: 1088 Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków
Post
autor: lessmian2 » 21 lutego 2011, 19:07
Wystarczy przeczytać
Funkcja
system zwraca status wyjścia wywoływanego programu,
exec nie zwraca nic, a to co Cię interesuje, czyli to co program wypisuje, to jak napisał
mrc000 backticki -
`` .
stoperekk
Posty: 27 Rejestracja: 06 marca 2009, 16:44
Post
autor: stoperekk » 21 lutego 2011, 19:12
Dziękuję, właśnie o to mi chodziło, złe nawiasy wstawiałem, ja jeszcze dodałem na końcu
aby nie było znaku nowej linii.
Kod: Zaznacz cały
my $x = `/sbin/ifconfig wlan0 | head -n 2 | tail -n 1 | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1 | tr -d '\n'`;
lessmian2
Member
Posty: 1088 Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków
Post
autor: lessmian2 » 21 lutego 2011, 19:26
stoperekk pisze: aby nie było znaku nowej linii
Od tego jest
chomp . Poza tym skoro już piszesz skrypt w perlu, używaj go zamiast uruchamiać 5 zewnętrznych programów