Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-05-14 19:50:55

  menel - Użytkownik

menel
Użytkownik
Zarejestrowany: 2013-11-02

nauka programowania w bashu

Poszukuję jakiejś godnej, sprawdzonej pozycji w miarę przystępnie napisanej dla laika, która dobrze wyczerpie temat. Sporo tego w sieci i może możecie polecić coś dobrego i sprawdzonego na czym będzie się można początkowo oprzeć.

Offline

 

#2  2014-05-14 19:55:17

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Offline

 

#3  2014-05-14 20:04:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

Ucz się lepiej Perla lub Pythona, jak poradzisz sobie z Perlem, to Bash stanie się  banalnie prosty.

Składnia języków skryptowych jest podobna, natomiast Bash ma może najwyżej 5 maks. 10% możliwości normalnego języka programowania.

Poza prostymi zadaniami i funkcjami, to prawie zawsze znajdzie się jakiś drobiazg, którego w Bashu nie da się osiągnąć, albo funkcja, która w Perlu czy Pythonie się załatwia się  dodatkowym modułem lub biblioteką,
a w Bashu nawet pół metra kodu nie pomoże.

Dlatego osobna nauka Basha nie ma zbyt wielkiego sensu.

Ostatnio edytowany przez Jacekalex (2014-05-14 20:38:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2014-05-14 20:09:31

  Trin - Wredotka

Trin
Wredotka
Zarejestrowany: 2008-05-16

Re: nauka programowania w bashu

Popieram przedmówcę - ja w Pythonie ze dwa lata siedzę, b. sympatyczny i elastyczny język - wszystko się da :)
jakbyś chciał, dysponuję własnymi kawałkami kodu.

Ostatnio edytowany przez Trin (2014-05-14 20:10:10)

Offline

 

#5  2014-05-14 20:12:50

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: nauka programowania w bashu

co do basha to będę "oryginalny" - man bash... IMHO w 90% opisuje to co bash potrafi ;)
Jeśli chodzi o "skrpcenie" to też poleciłbym perla.

W perlu można pisać na 2 sposoby:
- normlanie, czyli "czysty" kod bez kombinacji
- "perlowo" czyli skompresowanie 50 linijek "czystego" skryptu do 10 ;)

O ile znam perla (a nie znam)* to całkiem fajnie się w nim pisze i ma miliony bibliotek. Co prawda do guru mi jeszcze sporo brakuje, ale mimo wszystko wolę "czysty" kod ;)



* - Dr, Wilczur, Strefa Rokendrola Wolna Od Angola


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#6  2014-05-14 20:30:30

  menel - Użytkownik

menel
Użytkownik
Zarejestrowany: 2013-11-02

Re: nauka programowania w bashu

Ucz się lepiej Perla lub Pythona, jak poradzisz sobie z Perlem, to Bash stanie się  banalnie prosty.

z tym, że nie jestem pewien czy to mnie po prostu nie przerośnie..i też chodzi o to żebym się nie zniechęcił za szybko, wiadomo jak człek ślęczy nad czymś to i efekty jakieś skromne dają motywację a jak nic nie wchodzi do makówki to i chęci braknie...

Ostatnio edytowany przez menel (2014-05-14 20:38:25)

Offline

 

#7  2014-05-14 20:39:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

Składnia Basha i Perla jest praktycznie jednakowa, więc jak Cię Bash nie przerasta, to Perl też nie.

Ten skrypcio zaczął się od Basha, ale kiedy trzeba było czesać output z javascripta, to Basha "zabrakło". ;)

Ostatnio edytowany przez Jacekalex (2014-05-14 20:43:42)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2014-05-14 21:08:36

  mati75 - Psuj

mati75
Psuj
Skąd: masz ten towar?
Zarejestrowany: 2010-03-14

Re: nauka programowania w bashu

Mi bash zawsze przypominał pascala, za brak obiektywności. Dodam jak inni ucz się python albo perl ze skryptowych. Z normalnych to tylko C i C++.


https://l0calh0st.pl/obrazki/userbar.png

Offline

 

#9  2014-05-14 21:47:40

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: nauka programowania w bashu

z "normalnych" to w pierwszej kolejności (mimo swojej ociężałości) wymieniłbym jave ale to już dyskucja na inny wątek ;)


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#10  2014-05-14 22:07:09

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: nauka programowania w bashu

Natomiast moim zdaniem powłoka to absolutna podstawa, którą dobrze ogarnąć przed pójściem dalej. W końcu to w niej się poruszamy na co dzień w konsoli, a nie w jakimś IDE C++.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#11  2014-05-14 22:33:15

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: nauka programowania w bashu

@azhag - ale nikt nie przeczy że znajomość powłoki jest przydatna ;) Ale do tzw programowania (z zapatrzeniem w przyszłość/cv) lepiej łyknąć na początek perla ;)


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#12  2014-05-14 22:57:32

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

azhag napisał(-a):

Natomiast moim zdaniem powłoka to absolutna podstawa, którą dobrze ogarnąć przed pójściem dalej. W końcu to w niej się poruszamy na co dzień w konsoli, a nie w jakimś IDE C++.

To jest absolutna podstawa, ale zauważyłem, że ucząc się Perla, automatycznie łapię obsługę Basha, a w drugą stronę to już tak ładnie   nie działa. :D

Ostatnio edytowany przez Jacekalex (2014-05-14 23:04:07)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2014-05-14 23:31:09

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Re: nauka programowania w bashu

Fajnie że taki wątek powstał, chciałbym zapytać jeśli już zeszliście na wątek Perla/Pythona, którego aktualnie lepiej się uczyć? Który jest bardziej perspektywiczny i może się bardziej przydać w ewentualnej pracy? Dodam że uczę się sam już Perla od kilku dobrych miesięcy, ale nie wiem czy to był dobry wybór.

I jeśli już jesteśmy na temacie Perla, to chciałbym spytać, czy gdy piszecie skrypty w Perlu to używacie osobnych modułów np. do wyszukiwania plików typu File::Find, File::Basename, czy po prostu używacie komend systemowych z użyciem system("") ?


"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ Steve Jobs

Offline

 

#14  2014-05-14 23:42:51

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

Możesz używać zarówno modułów, jak i poleceń systemowych.
To są zamienne metody, używanie wbudowanych funkcję perla przeważnie, choć nie zawsze, jest trochę szybsze, niż polecenie systemowe, i znacznie bardziej elastyczne, bo w przypadku modułu masz kilkanaście sposobów uzyskania wyników działania funkcji, a odpalać polecenie systemowe jako np PIPE, masz co prawda OUTPUT, ale konkretne dane musisz z tego OUTPUTu dopiero wyczesać.

Jeśli chodzi o porównanie Perl/Python, to do administrowania systemem zdecydowanie Perl, do łatwego tworzenia jakichś okienkowych rzeczy raczej Python.
Perl ma tysiące gotowych modułów, natomiast  Python jest dosłownie jak plastelina, i jest trochę szybszy w działaniu od Perla.

W porównaniu z C/C++ oba są bardzo  proste.

Tu masz porównanie szybkości powłoki i rożnych języków skryptowych:
http://opennomad.com/content/performance-different- … python-v-ruby

Ostatnio edytowany przez Jacekalex (2014-05-15 00:01:29)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#15  2014-05-15 00:27:00

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: nauka programowania w bashu

Wielki plus dla Pythona za czytelność kodu. Skrypty Perla to jakaś sieczka - łatwo się piszę cholernie trudno się czyta i debuguję...

Offline

 

#16  2014-05-15 00:50:40

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: nauka programowania w bashu

megabajt napisał(-a):

Wielki plus dla Pythona za czytelność kodu. Skrypty Perla to jakaś sieczka - łatwo się piszę cholernie trudno się czyta i debuguję...

I nie do końca się zgodzę ;)
jak już pisałem. W perlu można napisać "czysty" kod i mozna go skompresować tak, że autor po miesiącu będzie miał problem z rozkodowaniem :D

Co do debuga to zawsze pozostaje nieśniertelny strace i dgb ;)

Jeśli chodzi o perla to masz "dwie ścieżki rozwoju":
1) "skrypciarz" - piszesz czysty, łatwy do ogranięcia skrypt
20 ""perlowiec" -  używasz łamańców o których sam po miesiacu masz "zielone pojęcie" :D


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#17  2014-05-15 01:43:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

Ja tam parę razy zaglądałem  do trzech skryptów Perla, nawet nanosiłem własne poprawki w dwóch z nich, i myślałem, że je pisali Perlowcy,
a teraz czytam, ze to byli zwykli skrypciarze. :D

I teraz mam zagwozdkę, kto ten soft tworzy, co to za skrypciarze.

Wspomniane skrypty to:
/usr/sbin/spamd  - tylko odczyt.
/usr/sbin/amavisd  - poprawki.
/var/qmail/bin/qmail-scanner-queue.pl  - poprawki.

Do głowy by mi nie przyszło, że taki soft do walki ze spamem, używany na tysiącach serwerów na całym świecie  skrypciarze piszą. :D

Czego to się człowiek dowiaduje na stare lata. xD

EDIT:

megabajt napisał(-a):

Wielki plus dla Pythona za czytelność kodu. Skrypty Perla to jakaś sieczka - łatwo się piszę cholernie trudno się czyta i debuguję...

Raczej prosto, nawet prościej, niż Basha, wystarczy moduł diagnostics.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2014-05-15 02:06:03)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#18  2014-05-16 01:35:13

  menel - Użytkownik

menel
Użytkownik
Zarejestrowany: 2013-11-02

Re: nauka programowania w bashu

no pobawiłem się trochę perlem, pierwsze kroki, cholera przy okazji odkurzyłem trochę matematyki w łepetynie;) dobrze mi zrobi...może na starość nie dostanę alzheimera po takim oraniu głowy;)

Jacekalex masz więcej swojego kodu perlowego, bo zdaje się ogarniasz, przydałby mi się do nauki czytania..

Offline

 

#19  2014-05-16 03:05:26

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

Więcej kodu perlowego?
Najdłuższy jest rssperl (sznurka masz gdzieś wyżej), jest też skrypt do wysyłania komunikatów przez padu-dziadu:

Kod:

#!/usr/bin/perl
use strict;
use Net::Gadu; 
use Unicode::MapUTF8 qw(to_utf8 from_utf8);
my $gg_mess="grzegżółka";
my $gg_login="{NUMEREK_PADU}";
my $gg_pass="{HASEŁKO_DZIADU}";
my $gg_chat_number = $ARGV[0];


while (<STDIN>)
{
    $gg_mess = $_;
}


$gg_mess = from_utf8( { -string => $gg_mess, -charset => 'ISO-8859-2' } );

my $gg = new Net::Gadu(async => 1);

$gg->login($gg_login, $gg_pass, $Net::Gadu::STATUS_INVISIBLE) or die "Login error\n";   
    while ($gg->check_event() == 1){
        my $e = $gg->get_event();
        my $type = $e->{type};            
    if ($type == $Net::Gadu::EVENT_CONN_SUCCESS){ 
        # print "CONNECTED\n";
         $gg->notify();
         $gg->send_message_chat($gg_chat_number, $gg_mess);  
            }
    }                  
 $gg->logoff();

To napisał Kolo na forum buntu.

A to już moje wypociny:

Kod:

#!/usr/bin/perl

use strict;
use warnings;
use Finance::Bank::mBank;
use encoding qw(utf8);
# use diagnostics -verbose;
# enable  diagnostics;

use Gtk2::Notify -init, 'Basic';

my $mbank = Finance::Bank::mBank->new(
         userid   => '{NUMER_PACJENTA}',
         password => '{HASELKO}'
           );
           for my $account ($mbank->accounts) {
           my $konto= $account->{account_name};
           if ($konto=~m/eKONTO/){
                my $ekontosaldo =  $account->{balance};
                my $ekontodost = $account->{available};
                
                my $zlotek = Gtk2::Notify->new("Na ekoncie zostało $ekontodost", "Saldo wynosi $ekontosaldo", 
 '/home/pacjent/.icons/mbank.jpg');
                $zlotek ->show;

                my $ekonto = "na ekoncie:\n  saldo = $ekontosaldo\n  dostępne= $ekontodost\n\n";
                print $ekonto; 
                    }
                
             if ($konto=~m/eMAX/){
                my $emaxsaldo =  $account->{balance};
                my $emaxdost = $account->{available};        
                
                print "na emaxie:\n     saldo = $emaxsaldo\n     dostępne= $emaxdost\n\n"; 
                }

               
            };

Ten skrypcio przed zmianami na stronie Mbanku ładnie wyświetlał stan konta, obecnie nie działa, ale masz w nim przykład wyświetlania powiadomień notify w Gtk2.

Tylko moje wypociny śmierdzą lamerstwem, lepiej zobacz w systemie, pół dpkg jest napisane w perlu, w repo masz skrypta sendxmpp w perlu,
ze setkę innych programów również, a na http://search.cpan.org/
jest dokumentacja modułów, wraz z przykładowymi skryptami.
Ja zazwyczaj, zanim coś napiszę, to przeglądam z 5 - 50 przykładów podobnego kodu na necie.

Ja poza tym nie jestem tu wcale specem od Perla, jest kilkadziesiąt osób, które znają go 1500 razy lepiej.

W każdym razie kod jest dość prosty, pisze się przyjemnie.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2014-05-16 04:34:39)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#20  2014-05-16 13:47:07

  menel - Użytkownik

menel
Użytkownik
Zarejestrowany: 2013-11-02

Re: nauka programowania w bashu

dziękować, na razie właśnie chcę coś amatorskiego i prostego co by mi głowa nie wyparowała;)

Offline

 

#21  2014-05-16 18:26:08

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: nauka programowania w bashu

Tutaj masz przykład, jak znaleźć własną doopę w syslogu:

Kod:

#!/usr/bin/perl
use strict;
use warnings;


  open(FILE, "< /var/log/syslog") or die ": unable to open syslog: $!\n";
  
  while (<FILE>) {

 my $print = (<FILE>);
#    chomp $print;
    print $print if ($print =~/dupa/);

    
}
close (FILE);

Samo poszukiwanie byłoby prostsze  w bashu

Kod:

grep dupa /var/log/syslog

Ale jakbyś chciał te logi czesać kilkoma regexami, wyciągać z nich wartości do zmiennej i obudowywać funkcjami, to Basha przeważnie szybko zabraknie. ;)

Jak np w tym przypadku:
http://forum.dug.net.pl/viewtopic.php?id=22977

Pozdro
:D

Ostatnio edytowany przez Jacekalex (2014-05-16 18:34:34)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#22  2014-05-17 11:08:19

  tajwan - mega boss

tajwan
mega boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Offline

 

#23  2014-05-17 14:16:57

  menel - Użytkownik

menel
Użytkownik
Zarejestrowany: 2013-11-02

Re: nauka programowania w bashu

bossie to co tam dałeś to więcej w manie wyczytam, chodziło mi bardziej o coś podręcznikowego co wyczerpuje całkowicie temat razem z ćwiczeniami, przykładami trikami itd..;)

Offline

 

#24  2014-05-17 15:02:17

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: nauka programowania w bashu

@menel
Nie rozpedzaj sie tak z podręcznikami bo po prostu bash taki jest. to nie java, że musisz mieć 3 tomy po 1499 stron. W zasadzie te stronki daja cały obraz funkcji basha. Jak coś chcesz więcej to ruby, python bądź przywoływany perl

Offline

 

#25  2014-05-17 16:00:55

  tajwan - mega boss

tajwan
mega boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: nauka programowania w bashu

Lista 2500 języków programowania wraz z ich opisami http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm

Lista dwudziestu najpopularniejszych języków programowania

Kod:

    C
    Java
    Objective-C
    C++
    C#
    (Visual) Basic
    PHP
    Python
    JavaScript
    Visual Basic .NET
    Ruby
    Transact-SQL
    Perl
    F#
    Język asemblera
    Lisp
    PL/SQL
    MATLAB
    Delphi/Object Pascal
    D

http://lists.gnu.org/archive/html/info-gnu/2011-02/msg00012.html

Chyba dość wyczerpujące? http://www.gnu.org/software/bash/manual/bashref.html

Ostatnio edytowany przez tajwan (2014-05-17 16:05:04)


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)