Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: lan na WiFi  (Przeczytany 7018 razy)

Denton

  • Gość
lan na WiFi
« dnia: 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.

greg000

  • Gość
lan na WiFi
« Odpowiedź #1 dnia: 2005-10-12, 15:52:51 »
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 :)

greg000

  • Gość
lan na WiFi
« Odpowiedź #2 dnia: 2005-10-12, 16:01:50 »

Denton

  • Gość
lan na WiFi
« Odpowiedź #3 dnia: 2005-10-12, 17:44:03 »
bash to bash a awk to awk,a to jest akurat funkcja awka a nie basha

Denton

  • Gość
lan na WiFi
« Odpowiedź #4 dnia: 2005-10-12, 17:46:16 »
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

wojtekm

  • Gość
lan na WiFi
« Odpowiedź #5 dnia: 2005-10-12, 17:54:06 »
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

xis

  • Gość
lan na WiFi
« Odpowiedź #6 dnia: 2005-10-12, 18:01:18 »
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.

Denton

  • Gość
lan na WiFi
« Odpowiedź #7 dnia: 2005-10-13, 08:41:46 »
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 :/

Denton

  • Gość
lan na WiFi
« Odpowiedź #8 dnia: 2005-10-13, 09:06:41 »
kolejnym problemem jest to ze
getline zmienna < plik zamiast zapisywac dane do zmiennej sa wypisywane na ekran

Denton

  • Gość
lan na WiFi
« Odpowiedź #9 dnia: 2005-10-13, 12:24:43 »
Dzisiaj zauwazylem ze kiedy wpisze funkcje w lini komend to dzialaja ,tylko ze ja wciaz potrzebuje miec to w pliku :/

greg000

  • Gość
lan na WiFi
« Odpowiedź #10 dnia: 2005-10-13, 12:41:21 »
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

Denton

  • Gość
lan na WiFi
« Odpowiedź #11 dnia: 2005-10-13, 13:01:23 »
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 :/

Denton

  • Gość
lan na WiFi
« Odpowiedź #12 dnia: 2005-10-13, 13:09:04 »
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.

greg000

  • Gość
lan na WiFi
« Odpowiedź #13 dnia: 2005-10-13, 14:45:21 »
Wklej najlepiej calosc bo tak to mozna tylko gdybac :)

spidi35

  • Gość
lan na WiFi
« Odpowiedź #14 dnia: 2005-10-12, 13:59:58 »
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.