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: Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego  (Przeczytany 4464 razy)

misio1222

  • Gość
Witam, może od razu zapytam, w jaki sposób pobrać dane z innego skryptu lub programu by móc wykorzystać je w innym przykład: ==>  "sudo iwlist wlan0 scan" - po wykonaniu tego polecenia otrzymamy listę sieci bezprzewodowych będących w zasięgu, problem tkwi w tym że np chciałbym pobrać nazwy tych sieci oraz siłę sygnału do swojego skryptu, jak należałoby to zrobić?

Z góry DZIĘKI za wszelki poważne propozycje ewentualnie źródła z których mógłbym się tego dowiedzieć, dodam że szukałem, u wujka google też ;) ale jedyne co wyrzuca to jak pobrać dane z pliku.txt.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3049
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #1 dnia: 2012-05-05, 19:56:27 »
Zakładam, że piszesz w bash-u. Przeczytaj dokumentację (np man bash), tam masz dokładnie opisaną konstrukcję, której potrzebujesz. I nie wkurzaj się, że odsyłam do MANa, ale to o co pytasz to jedna z podstawowych konstrukcji języków skryptowych (w dodatku w większości ma tą samą składnię) i jest opisywana w tutorialach w jednym z pierwszych ich rozdziałów (zlituję się - rozdział o różnych typach cudzysłowów).
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

misio1222

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #2 dnia: 2012-05-05, 20:51:28 »
Hmmm, trochę ogólna ta odpowiedź, myślałem bardziej o jakimś poleceniu czy coś, studiuje informatykę i zajmuje się raczej programowaniem w językach wysokiego poziomu także z pętlami,funkacjami i innymi tego typu tworami nie ma problemu, jednak mam napisać projekt w bash'u co wiąże się z bardzo dobrą znajomością linuxa - chciaż ten nie jest mi obcy ale nie na tyle by móc siąść i od razu pisać skrypty hmmm coś za bardzo się tu rozpisałem..... :)

tak czy inaczej Wielkie DZIĘKI za zainteresowanie się tematem!

a dla osób z podobnym problemem polecam => Ważne polecenia - BASH

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #3 dnia: 2012-05-05, 21:05:04 »
Przeczytaj podrozdział Command Substitution w rozdziale EXPANSION podręcznika bash-a.

Podstawianie wyników polecenia pod zmienną jest naprawdę zupełną podstawą pisania skryptów powłoki.

Ewentualnie skoro znalazłeś przykłady odczytywania zawartości pliku do zmiennej, zawsze mógłbyś interesujące polecenia przekierowywać do pliku i później z niego odczytywać (nie jest to rozwiązanie optymalne, ale przynajmniej świadczy o umiejętności rozwiązywania problemów przy pomocy znanych narzędzi).

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3049
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #4 dnia: 2012-05-05, 21:13:17 »
O ile propozycja przeczytania instrukcji (nie takiej znowu długiej) do języka w którym piszesz jest "ogólna" to... hm...

A jakbyś przeczytał, to znalazłbyś info choćby o `...` i  $(...). Można też zrobić combo potok/while/read do analizy wyjścia linia za linią. Ale ciągle - trzeba chcieć siąść i przeczytać JEDEN plik tekstowy.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #5 dnia: 2012-05-05, 22:23:31 »
Cytat: pkraszewski
Ale ciągle - trzeba chcieć siąść i przeczytać JEDEN plik tekstowy.
Anglojęzyczny man bash ma 320 695 znaków, co z grubsza można przeliczyć na 178 stron znormalizowanego maszynopisu.

Wątkotwórca pyta o podstawy ujęte na początku każdego kursu programowania powłoki, ale nie popadajmy w skrajność -- dokumentacja bash-a to nie jest lektura na jeden wieczór.

misio1222

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #6 dnia: 2012-05-05, 23:59:18 »
pkraszewski <= sorki jeżeli cię uraziłem, ZGADZAM się z tym co napisałeś ale wiesz ja nie chce studiować tego języka od a do z poza tym nie mam za bardzo na to czasu, sesja rozumiesz ;/

tak czy inaczej WIELKIE DZIĘKI ZA POMOC!!! Pozdrawiam

ubu59

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #7 dnia: 2012-05-06, 08:15:16 »
Witam!
Cytat: Minio
Anglojęzyczny man bash ma 320 695 znaków, co z grubsza można przeliczyć na 178 stron znormalizowanego maszynopisu.
Już parę razy zwracałem uwagę na tym forum, że na portalu (górny pasek strony) jest dostępna przeglądarka manuali i to po polsku: dla Basha to http://www.linux.pl/man/index.php?command=bash. Możesz ją więc przeglądać nawet z Windowsa.

Cytat: pkraszewski
Ale ciągle - trzeba chcieć siąść i przeczytać JEDEN plik tekstowy.
Lepiej chyba wyłowić i zapoznać się z podpadającymi akapitami.
Cytat: Minio
...-- dokumentacja bash-a to nie jest lektura na jeden wieczór.
Warto do niej częściej zaglądać. W każdej dystrybucji chyba jest polska wersja mana. Niby przeżytek (nie miał być już rozwijany) ale siła przyzwyczajenia jest wielka.

@misio1222 nie zżymaj się! Tu nikt nie będzie za Ciebie odrabiał lekcji.

Pozdrawiam!

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #8 dnia: 2012-05-06, 13:05:33 »
Cytat: ubu59
Cytat: Minio
Anglojęzyczny man bash ma 320 695 znaków, co z grubsza można przeliczyć na 178 stron znormalizowanego maszynopisu.
Już parę razy zwracałem uwagę na tym forum, że na portalu (górny pasek strony) jest dostępna przeglądarka manuali i to po polsku: dla Basha to http://www.linux.pl/man/index.php?command=bash. Możesz ją więc przeglądać nawet z Windowsa.
Czy dla przejrzystości wywodu mógłbyś jeszcze powiedzieć, jaką konkretnie tezę próbujesz udowodnić?

Moja teza brzmi, że proste odsyłanie do dokumentacji bash-a nie ma sensu. Logika mojego rozumowania przedstawia się następująco:

1. Dokumentacja bash-a jest bardzo długa i rozbudowana. Na poparcie tej tezy podałem liczbę znaków anglojęzycznego man bash, którą -- dla zobrazowania -- można przedstawić również jako około 178 stron znormalizowanego maszynopisu. Odnośnik, który podałeś, nie uchyla tego zarzutu -- liczba znaków przetłumaczonego podręcznika wynosi 283366, co można przeliczyć na około 157,5 strony znormalizowanego maszynopisu.

2. Ze względu na 1), nikt nie jest w stanie przyswoić dokumentacji w całości w ciągu względnie krótkiego czasu (np. jednego wieczora).

3. Ze względu na 1), nie wiedząc czego konkretnie należy szukać (czyli nie mając już pewnej wiedzy o bash-u), właściwie niemożliwe jest znalezienie tego, chyba że przypadkowo.

4. Ze względu na 2) i 3), podawanie jako odpowiedzi "man bash" jest bezcelowe -- taka odpowiedź ani trochę nie przybliża pytającego do rozwiązania jego problemu.

Dlatego ja podałem który konkretnie podrozdział w którym rozdziale podręcznika ma pytający przeczytać. Podrozdział ten ma zaledwie 1169 znaków, czyli niecałe 2/3 strony znormalizowanego maszynopisu. Jest to treść, którą pytający jest w stanie przyswoić w krótkim czasie.

Na marginesie, polski podręcznik umieszczony na stronie, do której odnośnik podałeś, pochodzi z bash-a 2.05a i ma datę "13 listopada 2001". Akurat w przypadku interesującej nas w tym wątku kwestii nie ma to znaczenia, ale generalnie tłumaczenie jest tak stare, że w bardzo wielu przypadkach okaże się bezwartościowe. Dlatego ja już jakiś czas temu zrezygnowałem z czytania tłumaczonej dokumentacji.

Gdzieś mi się obiło o uszy, że ktoś chce reaktywować projekt tłumaczenia stron podręczników. Życzę tym ludziom szczęścia, gdyż tłumaczenia aktualnej dokumentacji są nam niezwykle potrzebne.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3049
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #9 dnia: 2012-05-06, 16:46:53 »
Cytat: Minio
2. Ze względu na 1), nikt nie jest w stanie przyswoić dokumentacji w całości w ciągu względnie krótkiego czasu (np. jednego wieczora).
Wiesz, problem z tym, że na 100% pytający nie dostał jednego wieczora na nauczenie się basha. Stawiam raczej na to, że miał na to około semestru zajęć na uczelni...

Na forach strasznie dołujące (zwłaszcza dla byłego nauczyciela akademickiego) są okresy ok. 2 tygodnie przed sesjami. Nagle okazuje się, że nauczyciele wychodzą wtedy jak zombie spod ziemi i zadają z kosmosu zadania z materiału, którego nigdy nie było na zajęciach. Normalnie tuż przed zaliczeniem wykładowcy budzą się, otwierają trumny, wloką się na uczelnię mrucząc "braaaaaainzzzzz!" i zadają z du*y pytania pilnym, wyuczonym wszystkich niuansów i przygotowanym na wszystko wzorowym studentom. Opowieści grozy normalnie - humaniści muszą nagle most zaprojektować, programiści opisać budowę anatomiczną nerki, medycy napisać kompilator a budowlańcy napisać rozprawkę filozoficzną inspirowaną "Nad Niemnem".

"Nie miałem czasu się uczyć, pracowałem" (tu akurat przytyk nie do żadnego z przedpiśców tylko standardowa wymówka przedsesyjna) - ja w liceum prowadziłem własną firmę usługową, sam sobie prowadziłem księgi, miałem czas brać udział w olimpiadach (chem/mat), dojść w obu na tyle wysoko, żeby dostać się na studia bez egzaminów i zdać dobrze maturę. Nikt się nie pytał, czy mam czas. Wstyd byłoby przyznać się jakiemukolwiek nauczycielowi, że coś się zawaliło "bo pracowałem". Na studiach obciachem było nie przygotować się, bo materiały były tylko po angielsku. Kumpela z grupy urodziła dwa dni po ostatnim egzaminie, sesję zdała na jednej z pierwszych lokat bez żadnych taryf ulgowych od wykładowców (plusminus drugi termin koła, bo np. badania miała). Z drugiej strony jak ktoś miał problem, to na konsultacjach zawsze pomoc uzyskał. Ale to wszystko wymagało małego, malutkiego haczyka - zaangażowania ze strony studenta. A to se ne vrati.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #10 dnia: 2012-05-06, 21:23:44 »
Cytat: pkraszewski
Wiesz, problem z tym, że na 100% pytający nie dostał jednego wieczora na nauczenie się basha. Stawiam raczej na to, że miał na to około semestru zajęć na uczelni...
Dlaczego zakładasz, że to co robi wątkotwórca jest jakkolwiek związane z uczelnią? Dlaczego nie przyjmujesz, że po prostu uczy się pisania skryptów powłoki i natknął się na problem, którego nie potrafi własnymi (bardzo skromnymi) środkami rozwiązać?

Zresztą, załóżmy nawet, że jest to fragment pracy zaliczeniowej. W porównaniu z niektórymi innymi studenciakami, nawet obecnymi tutaj na forum, wątkotwórca wykazał się sporym zaangażowaniem. Najwyraźniej zaczął już sam pisać ten program i w trakcie natknął się na przeszkodę, której nie potrafi obejść. Poprawnie zidentyfikował problem, wymyślił rozwiązanie i zapytał, jak to rozwiązanie można wcielić w życie. Zauważ, że jego pytanie jest bardzo precyzyjne.

Choćby z tych względów zasługuje na odpowiedź mniej ogólną niż "man bash". Nie trzeba od razu podawać gotowego rozwiązania, wystarczy zawęzić który konkretnie fragment "man bash" powinien przeczytać.
Jak będzie chciał, to zapozna się również z resztą podręcznika. Np. ja skrypty powłoki mam opanowane całkiem nieźle, a nigdy nie przeczytałem całego podręcznika bash-a. I dlatego tym bardziej nie będę tego oczekiwał od kogoś, kto nie ma jeszcze opanowanych podstaw.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3049
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #11 dnia: 2012-05-07, 18:29:40 »
Cytat: Minio
Choćby z tych względów zasługuje na odpowiedź mniej ogólną niż "man bash". Nie trzeba od razu podawać gotowego rozwiązania, wystarczy zawęzić który konkretnie fragment "man bash" powinien przeczytać.
Akurat wywołanie podprocesu i złapanie wyniku to podstawowa funkcja większości języków skryptowych - a powłok w szczególności - więc wskazanie konkretnego fragmentu mana wyczerpuje znamiona gotowego rozwiązania :)

Cytat: Minio
Dlaczego zakładasz, że to co robi wątkotwórca jest jakkolwiek związane z uczelnią?
Mea culpa, faktycznie nic nie ma o uczelni.

Cytat: Minio
nie wiedząc czego konkretnie należy szukać (czyli nie mając już pewnej wiedzy o bash-u), właściwie niemożliwe jest znalezienie tego, chyba że przypadkowo.
No nie wiem... bash wynik do zmiennej w Google w drugim wyniku zwraca wszystko co pytający potrzebuje...
A cytując kawałek pierwotnego pytania w jaki sposób pobrać dane ze skryptu  bash - z pominięciem pierwszych hitów w forum zwraca także użyteczne strony...
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

misio1222

  • Gość
Pobieranie danych z jednego skryptu (lub programu) do drugiego -mojego
« Odpowiedź #12 dnia: 2012-05-21, 15:56:30 »
Pomijając całą dyskusje powyżej problem rozwiązałem następująco >
wynik polecenia zapisałem do pliku: polecenie > plik , z pliku poleceniami " awk" i "sed" wyodrębniłem i pobrałem potrzebne dane.

Pozdrawiam