Nowe posty

clip Jaką dystrybucje polecacie pod mój sprzęt? (0)
Wczoraj o 21:45:38
clip Jaka dystrybucja pod mon sprzęt? (0)
Wczoraj o 21:43:55
xx BIOS nie widzi dysku z Linuxem (2)
2019-09-14, 10:41:31
xx Problem z antiX wersja live (0)
2019-09-12, 20:56:49
xx Serwer do Nauki (5)
2019-09-05, 07:35:50
cheesy pozycjonowanie (0)
2019-09-03, 13:54:08
xx iptables (1)
2019-09-03, 12:29:53
xx Co najpierw - przeczytać książkę i później obejrzeć film czy odwrotnie (0)
2019-08-30, 10:34:44
xx Lubuntu 19.04 problem z wklejeniem tekstu do ssh (1)
2019-08-28, 18:10:20
xx Migracja GRUB2 (0)
2019-08-24, 12:30:46

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

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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.

Offline Grzegorz L

  • Users
  • Guru
  • *****
  • Wiadomości: 594
    • Zobacz profil
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 :)

Offline Grzegorz L

  • Users
  • Guru
  • *****
  • Wiadomości: 594
    • Zobacz profil
lan na WiFi
« Odpowiedź #2 dnia: 2005-10-12, 16:01:50 »

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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

Offline Wojciech Miłkowski

  • Stały bywalec
  • ***
  • Wiadomości: 206
    • Zobacz profil
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

Offline xis

  • Global Moderator
  • Guru
  • *****
  • Wiadomości: 1049
    • Zobacz profil
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.
Everything should be made as simple as possible, but not simpler
-- Albert Einstein

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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 :/

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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 :/

Offline Grzegorz L

  • Users
  • Guru
  • *****
  • Wiadomości: 594
    • Zobacz profil
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

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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 :/

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
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.

Offline Grzegorz L

  • Users
  • Guru
  • *****
  • Wiadomości: 594
    • Zobacz profil
lan na WiFi
« Odpowiedź #13 dnia: 2005-10-13, 14:45:21 »
Wklej najlepiej calosc bo tak to mozna tylko gdybac :)

Offline Krzysztof Jasieniecki

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
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.