Forum Linux.pl
System => Sieć => Wątek zaczęty przez: Denton w 2005-10-12, 14:45:01
-
Witam, natrafilem na cos bradzo dziwnego. Nie dzialaja mi funkcje wbudowane czyli for if itd. Wpisuje do pliku zwyklego, najprostszego ifa:
x=2
if (x % 2 == 0)
print \\"costam\\"
else
print \\"costam2\\"
Niestety po uruchomieniu tego skryciku wywala mi blad skladni .Normalnie jakas paranoja.
-
Polecam poczytanie troche o programowaniu w bash\\'u bo pewnie o to ci chodzi (tak wnioskuje z tego co tu wkleiles).
http://www.komputery-internet.net/linux/bash_prog3.php
oraz
www.google.pl :)
-
A tu cos do tematu awk :)
http://technika.newworld.n17.waw.pl/~DOWNLOAD/awk/awk-man-b5.pdf
-
bash to bash a awk to awk,a to jest akurat funkcja awka a nie basha
-
dzieki za link ale to co tam jest napisane znam na pamiec bo wlasnie z tego sie uczylem i chyba widac ze to co ja napisalem dokladnie odpowiada konwencji przedstawionej w tym manualu i dlatego napisalem ze to paranoja ze nie dziala
-
W kawałku, który przedstawiłeś \\"x % 2\\" będzie zawsze równe 0. Może po prostu masz błąd w kodzie?
Wojtek
-
Jeśli pisałeś plik ze skryptem w windowsowym notatniku (lub jakimolwiek narzędziem pod windowsem) to przyczyną błędu składni może być sposób w jaki windows określa nową linię (windows stosuje dwa znaki stwrujące nr, a Linux jeden n). Spróbuj w takim wypadku potraktować skrypt konzolowym narzędziem dos2unix, np:
dos2unix skrypt.sh
Nie mam pewności czy to jest przyczyna, ale wielokrotnie spotkałem się z błędami w skryptach shellowych spowodowanymi właśnie znakami nowej linii.
-
Skrypt napisalem pod linuxem ,a jesli chodzi o to ze x % 2 jest rowne 0 to nie ma to znaczenia bo wywala mi syntax error a z tego co wiem to jest to blad skladni :/
-
kolejnym problemem jest to ze
getline zmienna < plik zamiast zapisywac dane do zmiennej sa wypisywane na ekran
-
Dzisiaj zauwazylem ze kiedy wpisze funkcje w lini komend to dzialaja ,tylko ze ja wciaz potrzebuje miec to w pliku :/
-
Wg. opisu awk to chyba powinno byc tak:
#! /bin/awk -f
BEGIN {
suma = 0
while ((getline a < \\"lista\\") > 0)
suma = suma + a
print \\"Suma liczb z pliku LISTA: \\" a
close(\\"lista\\")
if (suma <10)
print \\"Suma mniejsza niz 10\\"
else
print \\"Suma wieksza niz 10\\"
}
to nazwa przykladowego pliku z liczbami.
Teraz to juz chyba wszytko dziala albo ? :)
Pozdr
-
objalem calego mojego if a nawiasem {} no i niby zaczal dzialac ,tylko ze poza wypisaniem tego co powinien ,wywala mi na ekran wszystko to co bylo w pliku wejsciowym :/
-
Dodatkowo x=2 prznioslem do sekcji BEGIN i wszystko dziala, wiec dzialajacy skrypt wyglada tak:
BEGIN{
x=2
}
{
if(x % 2 == 0)
{
print \\"costam\\"
}
else
{
print \\"costam2\\"
}
}
Tylko dalej nie wiem czemu musialem przeniesc x=2 do BEGIN zeby sie nie wywalala na ekran zawartosc pliku wejsciowego.
-
Wklej najlepiej calosc bo tak to mozna tylko gdybac :)
-
Mam nadzieje ze ktos bedzie mi w stanie pomuc. Mam SUSE 9.3 na komputerze DELL c610 latitud (laptop) z zainstalowana karte sieciowa WiFi i chcialem polaczyc sie z drugim komputerem na ktorym jest winXP. Niestety cos mi nie wychodzi. Skonfigurowalem wszystko wiem ze do polacznia dwoch kompow przez WiFi musze ustawic opcje a-hoc czy ad-hoc niepamietam jak to dokladnie sie nazywalo. Po skonfigurowaniu n akomputerze z winXP wykrywa aktywne polaczenie a SUSE pokazuej iz niema polaczenia. Jak ten problem rozwiazac?
Jak przegladalem opcje konfiguracji WiFi rzucilo mi sie w oczy iz sa dwa adresy IP jeden local 127.0.1.1
i drugi ktory sam wprowadzilem 192.168.0.1. Jeszcze nigdy nie konfigurowalem sieci pod linuxem wiec prosze o wyrozumialosc i udzielenie wyczerpujacej odpowiedzi. Na koniec nadmienie i karta sieciowa jest zainstalowana. Prosze o pomoc.
-
2005-10-12 13:59:58 spidi35 napisał:
> Mam nadzieje ze ktos bedzie mi w stanie pomuc. Mam SUSE 9.3 na komputerze DELL c610 latitud
> (laptop) z zainstalowana karte sieciowa WiFi i chcialem polaczyc sie z drugim komputerem na
> ktorym jest winXP. Niestety cos mi nie wychodzi. Skonfigurowalem wszystko wiem ze do polacznia
> dwoch kompow przez WiFi musze ustawic opcje a-hoc czy ad-hoc niepamietam jak to dokladnie sie
> nazywalo. Po skonfigurowaniu n akomputerze z winXP wykrywa aktywne polaczenie a SUSE pokazuej
> iz niema polaczenia. Jak ten problem rozwiazac?
> Jak przegladalem opcje konfiguracji WiFi rzucilo mi sie w oczy iz sa dwa adresy IP jeden local
> 127.0.1.1
> i drugi ktory sam wprowadzilem 192.168.0.1. Jeszcze nigdy nie konfigurowalem sieci pod linuxem
> wiec prosze o wyrozumialosc i udzielenie wyczerpujacej odpowiedzi. Na koniec nadmienie i karta
> sieciowa jest zainstalowana. Prosze o pomoc.
----------- na początek powiem że właśnie dzisiaj po meczu (POLSKA!!!!!) będę konfigurował sieć przez WiFi - więc podziele się swoimi doświadczeniami. Ale najpierw proszę napisz dokładniej co żeś zrobił, bo narazie to zbyt ogólnikowo napisałeś - nie wiadomo w sumie nic. Napisz po kolei jak konfigurowałeś Win i Linuxa. OK?
pozdr
-
> ----------- na początek powiem że właśnie dzisiaj po meczu (POLSKA!!!!!) będę konfigurował sieć
> przez WiFi - więc podziele się swoimi doświadczeniami. Ale najpierw proszę napisz dokładniej co
> żeś zrobił, bo narazie to zbyt ogólnikowo napisałeś - nie wiadomo w sumie nic. Napisz po kolei
> jak konfigurowałeś Win i Linuxa. OK?
> pozdr
>------------
no wiec tak:
zaczne od windowsa:
- ustawilem adres IP na 192.168.0.1(dodam tylko iz nie mam internetu w domu)
- maska 255.255.255.0
i to wszystko a i polaczenie nie jest szyfrowane i nie wymaga hasla tak to ustawilem
teraz SUSE 9.3:
odpalilem yasta wybralem sprzet i dalej karty sieciowe.
pokazal mi dwie zwykla sieciowke i WiFi
obie sysytem wykryl
nastepnie wcisnolem edit wybralem z listy karte WiFi i zaczalem konfigurowac postepowalem podobnie jak w przypadku windowsa czyli adres IP recznie wprowadzany 192.168.0.2
maska 255.255.255.0
grupa robocza home zarowno na winxp jak i SUSE
i zapisalem te ustawienia.
Teraz wazne po w/w czynosciach komp z winXP wykryl polaczenie na WiFi a ten z SUSE pokazal iz jest brak jakiego kolwiek polaczenia. Nastepnie przystapilem do konfiguracji SAMB-y po skonfigurowaniu samby zresetowaly mi sie ustawienia karty sieciowej, i tak sie robi za kazdym razem. Niestety nie mam teraz kompa ze soba wiec nic wiecej do gglowy mi nie przychodzi. Mam nadzieje iz powysze informacje wystarcza abym uzyskal pomoc w rozwiklaniu mojego problemu.
-
2005-10-13 11:50:34 spidi35 napisał:
>
> > ----------- na początek powiem że właśnie dzisiaj po meczu (POLSKA!!!!!) będę
> konfigurował sieć
> > przez WiFi - więc podziele się swoimi doświadczeniami. Ale najpierw proszę napisz
> dokładniej co
> > żeś zrobił, bo narazie to zbyt ogólnikowo napisałeś - nie wiadomo w sumie nic. Napisz po
> kolei
> > jak konfigurowałeś Win i Linuxa. OK?
> > pozdr
> >------------
> no wiec tak:
> zaczne od windowsa:
> - ustawilem adres IP na 192.168.0.1(dodam tylko iz nie mam internetu w domu)
> - maska 255.255.255.0
> i to wszystko a i polaczenie nie jest szyfrowane i nie wymaga hasla tak to ustawilem
> teraz SUSE 9.3:
> odpalilem yasta wybralem sprzet i dalej karty sieciowe.
> pokazal mi dwie zwykla sieciowke i WiFi
> obie sysytem wykryl
> nastepnie wcisnolem edit wybralem z listy karte WiFi i zaczalem konfigurowac postepowalem
> podobnie jak w przypadku windowsa czyli adres IP recznie wprowadzany 192.168.0.2
> maska 255.255.255.0
> grupa robocza home zarowno na winxp jak i SUSE
> i zapisalem te ustawienia.
> Teraz wazne po w/w czynosciach komp z winXP wykryl polaczenie na WiFi a ten z SUSE pokazal iz
> jest brak jakiego kolwiek polaczenia. Nastepnie przystapilem do konfiguracji SAMB-y po
> skonfigurowaniu samby zresetowaly mi sie ustawienia karty sieciowej, i tak sie robi za kazdym
> razem. Niestety nie mam teraz kompa ze soba wiec nic wiecej do gglowy mi nie przychodzi. Mam
> nadzieje iz powysze informacje wystarcza abym uzyskal pomoc w rozwiklaniu mojego problemu.
>
------------------
hm nie zdążyłem wczoraj się pobawić (meczy był:-( !!!). ) Czytając Twojego posta dziwi mnie rzecz jedna. Chyba pamiętasz że jedną z kart trzeba ustawić na tryb ad-hoc (tryb access pointa) - ustawiłeś?. Nie jestem zabardzo zorientowany czy wszystkie karty można tak ustawić (nie mieałem czasu tego sprawdzić - trzeba sie zpytac mądrzejszych).
Jak ustawisz sambę to ci resetuje ustawienia karty? A skąd to wiesz. Pokaż ipconfig -a - listing.
Taka dygresja - jeśli twierdzisz że WinXp zobaczył połączenie to nie konfiguruj nic tylko zapuść ping 192.168.0.2 to linuxa i odwrotnie? zobaczysz czy łączność działa.? dzisiaj chyba się zabiorę za to - napisze później co i jak.
pozdr