[18:01] <@keidii>: ok
[18:01] <@keidii>: z gory przepraszam za literowki ;p
[18:01] <@keidii>: 1. wstep ;p
[18:02] <@keidii>: co to wogole jest shell
[18:02] <@keidii>: shell to program pelniacy role posrednika
[18:02] <@keidii>: pomiedzy systemem
[18:02] <@keidii>: operacyjnym lub aplikacjami a uzcytkownikiem
[18:03] <@keidii>: Jest czyms co "mowi" systemowi co user chce uruchomic
[18:03] <@keidii>: z jakimi parametrami itp.
[18:04] <@keidii>: z bardziej znanych "shelli" :
[18:04] <@keidii>: tekstowe np.:
[18:04] <@keidii>: * bash - Bourne Again Shell (znów powloka Bourne'a)
[18:04] <@keidii>: * sh
[18:04] <@keidii>: * command.com - procesor polecen systemu DOS
[18:04] <@keidii>: z graficznych to rozne Window managery etc.
[18:05] <@keidii>: pierwotnie shell mial tylko przekazywac do systemu
[18:05] <@keidii>: to co user chce wykonac ( nazwe binarki )
[18:05] <@keidii>: wspolczesnie np; bash
[18:05] <@keidii>: jest strasznie rozbudowany
[18:05] <@keidii>: mozna w nim doslownie programowac
[18:06] <@keidii>: my bedziemy zajmowac sie wlasnie bashem
[18:06] <@keidii>: Bash jest nastepca SH
[18:07] <@keidii>: dodano do niego wszystkie rzeczy, ktore sprawdzily sie w innych powlokach
[18:07] <@keidii>: jak np: csh
[18:07] <@keidii>: obecnie kazdy , kto uzywa linuxa powinien miec basha
[18:08] <@keidii>: ( najczesciej jest to domyslna powloka w wiekszosci distro )
[18:08] <@keidii>: :>
[18:08] <@keidii>: tyle takim krotkim wstepem
[18:09] <@keidii>: zajmijmy sie praca z bashem
[18:09] <@keidii>: jest ktos kto nie uzywal basha , a ma linuxa ?
[18:09] <@keidii>: ( tzn. ma xserver i radosnie klika ikonki )
[18:10] <@keidii>: :>
[18:10] _diabel_: i nawet robie programiki
[18:10] _diabel_: ;]
[18:10] co_mnie_ominelo: nie wiem co to :P
[18:10] Szejker: ;pp
[18:10] _diabel_: w bashu
[18:10] _diabel_: takie komendowe
[18:10] _diabel_: ;]
[18:10] _diabel_: ;p
[18:10] kiero: no wtedy mozemy ci odpowiedziec :P
[18:10] kamikaze: zsh jest super
[18:10] Szejker: nie ma takich osob chyba
[18:10] <@keidii>: dobra ..
[18:11] <@keidii>: polecenia w bashu wydajemy wpisujac je po znaku zachety
[18:11] <@keidii>: tzw. prompt
[18:11] <@keidii>: w zaleznosci od zachcianki uzytkownika i versjii systemu
[18:11] <@keidii>: prompt moze wygladac roznie
[18:12] <@keidii>: gentoo : ^lisi /mnt #
[18:12] <@keidii>: slack : root@beleco:/mnt#
[18:12] <@keidii>: itp
[18:13] <@keidii>: w tym miejscu nalezy powiedziec sobie jeszcze o istnieniu zmiennych srodowiskowych
[18:13] <@keidii>: co to jest ?
[18:13] <@keidii>: w systemi mozemy zdefinowac pewne wartosci, ktore beda ogolnie dostepne
[18:14] <@keidii>: dla wszyskich programow jakie sa uruchamiane
[18:15] <@keidii>: i dla przykladu to jak wyglada prompt przechowywane jest w zmiennej $PS1
[18:15] <@keidii>: keidii@lisi ~ # echo $PS1
[18:15] <@keidii>: \[\033[01;32m\]\u@\[\033[01;31m\]\h \[\033[01;34m\]\w # \[\033[00m\]
[18:16] <@keidii>: z wazniejszych zmiennych systemowych
[18:16] <@keidii>: mozna wymienic np:
[18:16] <@keidii>: $LC_ALL <- przechowuje ustawienia lokalizacji ( jaki jezyk ma byc uzywany )
[18:17] <@keidii>: czesto tez $EDITOR gdzie jest wustawiona sciezka do naszego ulubionego edytora
[18:17] <@keidii>: abu ustawic ( przypisac wartosc ) do jakies zmiennej mozna napisac :
[18:18] <@keidii>: export ZMIENNA=wartosc
[18:18] <@keidii>: echo $ZMIENNA
[18:18] <@keidii>: wartosc
[18:19] <@keidii>: teraz troche o programach linuxowych
[18:19] <@keidii>: moga one pryjmowac dane "ze standardowego wejscia"
[18:19] <@keidii>: czyli stdin
[18:19] <@keidii>: a wyrzucad moga na "standardowe wyjscie" albo na "wyjscie bladow"
[18:20] <@keidii>: czyli stdout i stderr
[18:20] <@keidii>: ktos kiedys wpadl na pomysl :
[18:21] <@keidii>: moze uda sie przekierowac wyjscie programu A na wejscie programu B
[18:21] <@keidii>: wtedy nie bedzie trzeba wszystkiwgo zapisywac do plikow itp
[18:21] <@keidii>: slozy do tego znak |
[18:21] <@keidii>: "|"
[18:21] <@keidii>: przekierowanie strumienia ;)
[18:22] <@keidii>: PRZYKLAD :
[18:22] <@keidii>: wezmy proste polecenie echo
[18:22] <@keidii>: echo "zapalka"
[18:22] <@keidii>: zapalka
[18:22] <@keidii>: czesto echo jest uzywane z 2 parametrami : -e i -n
[18:23] <@keidii>: -n powoduje NIEDOKLEJANIE nowego wiersza
[18:23] <@keidii>: a -e parsowanie znakow specialnych
[18:23] <@keidii>: wiec :
[18:23] <@keidii>: keidii@lisi ~ # echo -e "zaba"
[18:23] <@keidii>: zaba
[18:23] <@keidii>: keidii@lisi ~ # echo -e "za\tba"
[18:23] <@keidii>: za ba
[18:24] <@keidii>: => \t == tab
[18:24] <@keidii>: \\ = \
[18:24] <@keidii>: \n = new line
[18:25] <@keidii>: keidii@lisi ~ # echo -en "czesc\njestem\nzaba\n"
[18:25] <@keidii>: czesc
[18:25] <@keidii>: jestem
[18:25] <@keidii>: zaba
[18:25] <@keidii>: to polecenie sprobojemy "skleic" z grep
[18:26] <@keidii>: grep wyszukuje z wejscia ( lub pliku jesli podano ) wszystko co pasuje do podanego wzorca
[18:26] <@keidii>: keidii@lisi ~ # echo -en "czesc\njestem\nzaba\n" | grep "jestem"
[18:26] <@keidii>: jestem
[18:26] <@keidii>: ANALIZUJAC:
[18:27] <@keidii>: echo wyrzucilo 3 linijki ( jak widzielismy wczesniej )
[18:27] <@keidii>: wyjscie z "echo" zostalo przekierowane do grep
[18:27] <@keidii>: za pomoca wlsnie "|"
[18:28] <@keidii>: grep z tego co dostal , wyszuka wzorca "jestem" i te linijki wypisal
[18:29] <@keidii>: keidii@lisi ~ # echo -en "aa bb cc\naa cc dd\nbb ee aa\nee aa ff\n"
[18:29] <@keidii>: aa bb cc
[18:29] <@keidii>: aa cc dd
[18:29] <@keidii>: bb ee aa
[18:29] <@keidii>: ee aa ff
[18:29] <@keidii>: keidii@lisi ~ # echo -en "aa bb cc\naa cc dd\nbb ee aa\nee aa ff\n" | grep "cc"
[18:29] <@keidii>: aa bb cc
[18:29] <@keidii>: aa cc dd
[18:29] <@keidii>: z tego co wyrzucilo echo "wygrepowalismy" "cc"
[18:30] <@keidii>: grep przydaje sie bardzo jezeli w dluuuuugim pliku / wyniku dzialania programu szukamy paru interesujacych linijek
[18:30] <@keidii>: wszystko jasne ?
[18:31] <@keidii>: ( jak cos , to na priv )
[18:31] _diabel_: lol
[18:31] <@keidii>: lepej piszcie na priv...
[18:31] _diabel_: fajny wyklad
[18:31] _diabel_: ;]
[18:31] kiero: mam pytanko
[18:31] <@keidii>: wszystko jasne ??
[18:31] Szejker: czy grep zawsze wyrzuca cala linie, ktora zawiera dane wyrazenie ?
[18:31] _diabel_: nom raczej tak
[18:31] Dale: taa
[18:31] Solaris: man cut
[18:31] Solaris: jezeli nie chcesz calej lini
[18:31] <@keidii>: Szejker: grep moze pobrac sporo parametrow
[18:31] Szejker: pytam tylko z ciekawosci
[18:32] <@keidii>: np: mozna podac pare lini kontextu
[18:32] Szejker: i zeby sprawdzic jakiego dobrego wykladowce mamy ;p
[18:32] kiero: keidii> czy moglbys pokazac na przykladzie roznce z zastosowaniem parametru -n bo nie wiem do czego on sluzy
[18:32] <@keidii>: ok
[18:32] <@keidii>: keidii@lisi ~ # echo "linijka"
[18:32] <@keidii>: linijka
[18:32] <@keidii>: keidii@lisi ~ # echo -n "linijka"
[18:32] <@keidii>: linijkakeidii@lisi ~ #
[18:33] <@keidii>: linijka<----keidii@lisi ~ #
[18:33] <@keidii>: po wypisaniu "linijka" nie wstawiono nowego wiersza
[18:33] <@keidii>: jezeli w mamy pare "echo"
[18:34] <@keidii>: i damy -n to wynik zleje nam sie w 1 linijke
[18:34] <@keidii>: czasem jet to przydatne , kiedy np:
[18:35] <@keidii>: echo $PS1 wywali nam jakiego mamy prompta
[18:35] <@keidii>: echo $EDITOR wywali nam edytor
[18:35] <@keidii>: a gdybysmy porzebowali tego w 1 linijce ?
[18:36] <@keidii>: keidii@lisi ~ # echo $PS1; echo $EDITOR
[18:36] <@keidii>: \[\033[01;32m\]\u@\[\033[01;31m\]\h \[\033[01;34m\]\w # \[\033[00m\]
[18:36] <@keidii>: /usr/bin/vim
[18:36] <@keidii>: to jest w 2 linijkach
[18:37] <@keidii>: eidii@lisi ~ # echo -n $PS1; echo $EDITOR
[18:37] <@keidii>: \[\033[01;32m\]\u@\[\033[01;31m\]\h \[\033[01;34m\]\w # \[\033[00m\]/usr/bin/vim
[18:37] <@keidii>: w 1
[18:37] <@keidii>: dostalem tutaj uwage :
[18:38] <@keidii>: poco robic 2 echo skoro mozna "echo $PS1 $EDITOR"
[18:38] <@keidii>: to byl przyklda
[18:38] <@keidii>: w skryptach ( o ktorych bedzie pozniej )
[18:38] <@keidii>: bedzie :
[18:38] <@keidii>: echo $COS_WAZNEGO
[18:38] <@keidii>: ( troche kodu ktory cos miesza )
[18:38] <@keidii>: echo $INNE_WAZNE
[18:39] <@keidii>: a bedzie nam zalezalo , zeby one byly w tej zamej lini
[18:39] <@keidii>: odnosie przekierowywania strumienia :
[18:39] <@keidii>: mamy jeszcze pare ciekawych znaczkow :
[18:39] <@keidii>: < > >>
[18:40] <@keidii>: po kolei :
[18:41] <@keidii>: < to przekierowanie danych Z pliku DO programu
[18:41] <@keidii>: > Z programu DO ploku
[18:41] <@keidii>: >> to prawie to samo co ">" , tylko ze w ">" zamazuje poprzednie wartosci pliku , a >> go nadpisuje
[18:42] <@keidii>: echo "XX" > plik
[18:42] <@keidii>: echo "YY" > plik
[18:42] <@keidii>: to w "plik" bedziemy mieli YY
[18:42] <@keidii>: jezeli damy : echo "YY" >> plik
[18:42] <@keidii>: to dostaniemy i XX i YY
[18:43] <@keidii>: teraz szybki przeglad przydatnych polecen ( przydatnych szczegolnie w skryptach bashowych ;)
[18:43] <@keidii>: jezeli ktos ma ochote na ich szersze poznanie , polecam man ;)
[18:44] <@keidii>: cat - wypisuje zawartosc pliku ( na stdout )
[18:44] <@keidii>: ls - pokazuje zawartosc katalogu
[18:45] <@keidii>: ( ls czesto jest spotykany z opcja -a , wtedy pokazuje ukryte )
[18:45] <@keidii>: touch - "dotyka pliku"
[18:46] <@keidii>: tzn: jezeli plik istnieje zmienia jego date modyfikacji
[18:46] <@keidii>: jezeli nie istnieje - tworzy plik
[18:47] <@keidii>: du - pokazuje uzycie dusku prze plik katalog
[18:48] <@keidii>: du jest czesto spotykane z opcja -h
[18:49] <@keidii>: -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
[18:49] <@keidii>: czyli pokazuje wszystko nie w jednostkach bardziej dla nas czytelnych
[18:49] <@keidii>: keidii@lisi ~ # du /etc/make.conf -h
[18:49] <@keidii>: 4,0K /etc/make.conf
[18:50] <@keidii>: pwd - pokazuje nam , gdzie jestesmy
[18:50] <@keidii>: ( wyswietla aktualny katalog )
[18:50] <@keidii>: keidii@lisi ~ # pwd
[18:50] <@keidii>: /home/keidii
[18:50] <@keidii>: keidii@lisi ~ # pwd
[18:50] <@keidii>: /home/keidii
[18:50] <@keidii>: reszte polecen bedziemy poznawac w miare potrzeb
[18:52] <@keidii>: teraz troche o paru pagicznych znaczkach
[18:53] <@keidii>: np: $() lub `` <- wykonuje to , co jest w "srodku"
[18:53] <@keidii>: echo "$(pwd)"
[18:53] <@keidii>: /home/keidii
[18:53] <@keidii>: daje ten sam efekt co pwd
[18:53] <@keidii>: ale teraz mozna napisac :
[18:54] <@keidii>: keidii@lisi ~ # echo "Jestem teraz w $(pwd)"
[18:54] <@keidii>: Jestem teraz w /home/keidii
[18:55] <@keidii>: oraz ${}
[18:55] <@keidii>: ${} uzywamy do zmiennych srodowiskowych
[18:55] <@keidii>: najczesciej w celu zapewnienia poprawnej interpretacji o jaka zmienna na m chodzi
[18:56] <@keidii>: echo "uzywam $EDITOR edytorka"
[18:56] <@keidii>: uzywam /usr/bin/vim edytorka
[18:57] <@keidii>: ale jezeli przez nieuwage zjemy " "
[18:57] <@keidii>: keidii@lisi ~ # echo "uzywam $EDITORedytorka"
[18:57] <@keidii>: uzywam
[18:57] <@keidii>: uzycie ${}
[18:57] <@keidii>: zwalnia nas z stawiania zawsze po zmiennej spacji
[18:58] <@keidii>: ( nie zawsze chcemy, zeby ta spacja sie tam znalazla .... )
[18:58] <@keidii>: keidii@lisi ~ # echo "uzywam ${EDITOR}edytorka"
[18:58] <@keidii>: uzywam /usr/bin/vimedytorka
[18:58] <@keidii>: pomimo braku spacji - ptrzymalismy wartosc $EDITOR
[18:59] <@keidii>: ok
[18:59] <@keidii>: 5 minut na pytania
[18:59] Szejker: jak dla mnie wszystko czytelne i zrozumiale ;p
[18:59] Szejker: ale skoro 5 minut to ide po cos do jedzenia ;p
[18:59] Gynvael: j/w ;>
[18:59] Gynvael: btw o | juz mowiles ?
[18:59] <@keidii>: mhm
[19:00] Gynvael: a o tee tez wspominales ?
[19:00] Karql: a skrypty dzisiaj beda?
[19:00] <@keidii>: nom
[19:00] Karql: to lux:D
[19:00] <@keidii>: o tee nie
[19:01] Gynvael: keidii> mhm ;>
[19:01] <@keidii>: ok to uzupelniam :
[19:01] <@keidii>: tee - czyta ze standardowego wejścia i przesyła kopię na standar-
[19:01] <@keidii>: dowe wyjście oraz do pliku
[19:01] Gynvael: ok ide glowe umyc ;>
[19:01] Gynvael: keidii> very nice ;>
[19:02] <@keidii>: ok
[19:02] _diabel_: ;]
[19:02] <@keidii>: jeszcze 2 minutki ( zeby szejkeer z lodowki wrocil ;P ) i lecimy dalej ;d
[19:02] _diabel_: daj cos w stylu jak zrobic prosty program wiesz...takie kilka polecen zamiast jednego ;p
[19:03] <@keidii>: _diabel_: wlansnie o tym bedzie
[19:03] _diabel_: ;]
[19:03] <@keidii>: ok lecimy
[19:04] <@keidii>: napiszemy teraz prosy skrypt
[19:04] <@keidii>: kazdy zainteresowany powinien miec otwarta konsole
[19:04] <@keidii>: ( z bashem of corz )
[19:04] <@keidii>: oraz swoj ulubiony edytor
[19:04] <@keidii>: ( vim of corz ;P )
[19:05] <@keidii>: I-sza linijka skryptu bashowego zaczyna sie zawsze tak : ( powinna przynajmniej tak wygladac ) :
[19:05] <@keidii>: #!/bin/bash
[19:06] <@keidii>: mowi to, ze ten skrpt ma byc interpretowany przez basha ( ktory jest w /bin/
[19:06] <@keidii>: analogicznie perlowcy napisza #!/bin/perl
[19:07] <@keidii>: nasz pierszy strypt bedzie dzialal jak echo - wypisze to co mu podamy za parametr ;)
[19:08] <@keidii>: #!/bin/bash
[19:08] <@keidii>: echo $1
[19:08] <@keidii>: zapisujemy plik ( np: jako bash1.sh )
[19:08] <@keidii>: robimy chmod 777 bash1.sh
[19:09] <@keidii>: ( zeby mozna bylo go uruchomic ;)
[19:09] <@keidii>: i odpalamy :
[19:09] <@keidii>: keidii@lisi ~ # ./bash1.sh hej
[19:09] <@keidii>: hej
[19:09] <@keidii>: Komus nie dziala ?
[19:09] _diabel_: ja nawet nie sprawdzam
[19:09] _diabel_: bo wiem ze zadziala :P
[19:09] _diabel_: bo sam pisze
[19:09] _diabel_: ;p
[19:09] <@keidii>: ok
[19:09] Gynvael: j/w
[19:10] goped: a jak
[19:10] goped: ustalis parametr dla zmiennej?
[19:10] goped: znaczy si
[19:10] goped: sie
[19:10] <@keidii>: zaraz wyjasnie jak to dziala
[19:10] Szejker: ok wsio
[19:10] Szejker: sorx za spoznienie ;>
[19:10] goped: $a=cos $b=cos jeszcze
[19:10] <@keidii>: zaraz powiem
[19:11] <@keidii>: co znaczy i poco jest I wiersz wiemy
[19:11] <@keidii>: zostaje echo $1
[19:11] <@keidii>: echo co robi wiemy
[19:11] <@keidii>: $COS to zmienna srodowiskowa
[19:11] <@keidii>: $1 oznacza _PIERWSZY_ parametr naszego programu
[19:12] <@keidii>: $0 bedzie oznaczalo jego nazwe ( programu )
[19:12] <@keidii>: keidii@lisi ~ # cat bash1.sh
[19:12] <@keidii>: #!/bin/bash
[19:12] <@keidii>: echo $0
[19:12] <@keidii>: keidii@lisi ~ # ./bash1.sh
[19:12] <@keidii>: ./bash1.sh
[19:13] <@keidii>: analogicznie $2 to II parametr itd...
[19:14] <@keidii>: jezeli chcemy dac spacje do parametru - wystarczy :
[19:14] <@keidii>: keidii@lisi ~ # ./bash1.sh "hej tam"
[19:14] <@keidii>: hej tam
[19:16] <@keidii>: teraz napiszemy prosty skrypt ulatwiajacy zycie ;)
[19:16] <@keidii>: niedawno Gynvael prowadzil wyklda o assemblerze
[19:16] <@keidii>: mamy plik ze zrodlem :
[19:17] <@keidii>: TEST.asm
[19:17] <@keidii>: zeby podzialac trzeba wpisac :
[19:17] <@keidii>: nasm -f elf ttest.asm
[19:17] <@keidii>: ld test.o -o test
[19:18] <@keidii>: wpisywac to za kazwym razem to troche denerwujace ;)
[19:19] <@keidii>: ulatwy sobie zycie
[19:20] <@keidii>: keidii@lisi ~ # cat asm1.sh
[19:20] <@keidii>: nasm -f elf $( echo "${1}.asm" )
[19:20] <@keidii>: ld $(echo "${1}.o" ) -o $(echo ${1})
[19:20] <@keidii>: teraz aby przygotowac program do odpalenia wystarczy wpisac :
[19:20] <@keidii>: asm1.sh test
[19:20] <@keidii>: po kolei co to robi :
[19:21] <@keidii>: ( w listnigu pominieto pierwsza linijke #!/bin/bash )
[19:21] <@keidii>: najperw wywolywany jest nasm
[19:22] <@keidii>: recznie trzeba bylo wpisac :
[19:22] <@keidii>: nasm -f test
[19:22] <@keidii>: u nas jest
[19:22] <@keidii>: nasm -f elf $( echo "${1}.asm" )
[19:22] <@keidii>: po wydaniu polecenia : "asm1.sh test"
[19:22] <@keidii>: $1 przyjmuje jaka wartosc ?
[19:22] goped: test
[19:22] nooga: test
[19:23] goped: :]
[19:23] <@keidii>: ok
[19:23] <@keidii>: Szejker: na priv
[19:23] <@keidii>: gyn tez
[19:23] <@keidii>: moj_MISiO: o tym bylo na wykladzie Gynvael'a
[19:24] <@keidii>: jak wiemy
[19:25] <@keidii>: $( cos ) spowoduje wykonanie tego, co jest w srodku
[19:25] <@keidii>: w srodku jest echo "${1}.asm"
[19:25] <@keidii>: czyli z calosci dostaniemy test.asm
[19:25] <@keidii>: ( to co wpisywalismy recznie ;D )
[19:26] <@keidii>: linijka 2 analogicznie
[19:26] <@keidii>: z $(echo "${1}.o" ) dostaniemy test.o
[19:26] <@keidii>: a z $(echo ${1}) test
[19:28] <@keidii>: ok
[19:28] <@keidii>: teraz wprowadzimy IF'a :]
[19:29] <@keidii>: jezeli ktos programowal w pascalu / c itp
[19:29] <@keidii>: wie o co chodzi
[19:29] <@keidii>: skladnia jest taka :
[19:30] <@keidii>: if WARUNEK; then
[19:30] <@keidii>: POLECENIA
[19:30] <@keidii>: else
[19:30] <@keidii>: POLECENIA
[19:30] <@keidii>: fi
[19:31] <@keidii>: blok z else nie jest konieczny
[19:31] <@keidii>: ulepszmy teraz nasz bash1.sh
[19:32] <@keidii>: keidii@lisi ~ # cat ./bash1.sh
[19:32] <@keidii>: #!/bin/bash
[19:32] <@keidii>: if [ "${1}" = "" ]; then
[19:32] <@keidii>: echo "Podaj parametr !!!!"
[19:32] <@keidii>: exit
[19:32] <@keidii>: fi
[19:32] <@keidii>: echo $1
[19:33] <@keidii>: dodalem IF'a
[19:33] <@keidii>: teraz jezeli odpalimy skrypt bez parametrow - poinforuje on zebysmy jakis podali ;p
[19:33] <@keidii>: jak to dziala ?
[19:34] <@keidii>: w [] mamy wyrazenia
[19:34] <@keidii>: _WAZNE_ : po [ i przed ] musi byc odstep
[19:34] <@keidii>: jezeli napiszemy ["cos" = "nic"] to otrzymamy zonka:
[19:35] <@keidii>: -bash: [cos: command not found
[19:36] <@keidii>: echo wiemy co robi
[19:36] <@keidii>: exit zakancza skrypt
[19:37] <@keidii>: fi to koniec if ;]
[19:37] <@keidii>: pytania ?
[19:37] goped: a echo $1
[19:37] faxe: czym ZM=$( echo ${1} ) rozni sie od ZM=${1} ?
[19:37] goped: dodalem ifa?
[19:37] goped: co to zrobi?
[19:38] faxe: i dlaczego nie: if [ -z $1 ] d:
[19:38] Szejker: faxe: wprowadzasz zamieszanie
[19:38] Szejker: niepotrzebne.. .;]
[19:38] <@keidii>: faxe: dla przykladu
[19:38] Szejker: keidii> ja cos chcialem
[19:38] Szejker: keidii> czy exit zawsze jest konieczne ?
[19:38] <@keidii>: goped: mow jasnie
[19:39] goped: [19:35] <@<@keidii>> fi
[19:39] goped: [19:35] <@<@keidii>> echo $1
[19:39] goped: [19:35] <@<@keidii>> dodalem IF'a
[19:39] <@keidii>: Szejker: jak nie damy exit to wykona sie echo $1
[19:39] Szejker: ah
[19:39] <@keidii>: ij
[19:39] <@keidii>: tfu
[19:39] <@keidii>: ok
[19:40] <@keidii>: to jest skrypt :
[19:40] <@keidii>: #!/bin/bash
[19:40] <@keidii>: if [ "${1}" = "" ]; then
[19:40] <@keidii>: echo "Podaj parametr !!!!"
[19:40] <@keidii>: exit
[19:40] <@keidii>: fi
[19:40] <@keidii>: echo $1
[19:40] <@keidii>: czyli wersja bash1 z ifem
[19:40] <@keidii>: ;]
[19:41] <@keidii>: teraz o tym co mozemy dac jako WARUNEK
[19:41] <@keidii>: mazna napisac w skrocie [ -z $1 ]
[19:41] <@keidii>: -z sprawdzi czy $1 jest zdefiniowane
[19:42] <@keidii>: [ -d /homw ]
[19:42] <@keidii>: sprawdzi czy /homw to katalog ;)
[19:42] <@keidii>: ok
[19:42] <@keidii>: to tyle :p
[19:43] <@keidii>: wiecej i pare "uzupelnien" w nastepnym odcinku
[19:43] <@keidii>: ( o ile ten sie podobal )
[19:43] Szejker: keidii> jedno pytanie
[19:43] Szejker: jak za pomoca if sprawdzic, czy plik istnieje ?
[19:43] <@keidii>: -a
[19:43] <@keidii>: [ -a /etc/passwd ]
[19:44] Szejker: mhm
[19:44] <@keidii>: za tydzien bedzia petlw i fajne skrypciki ;p
[19:44] nooga: ej
[19:44] Szejker: dodaj cos jeszcze, 15 minut zostalo
[19:44] Szejker: :P
[19:44] nooga: a takie pytanie
[19:44] breeze: keidii> a jak sprawdzic czy jakis proces lub program jest odpalony?
[19:44] Dale: ps x | grep
[19:44] faxe: http://faxe.ath.cx/wyklady
[19:44] nooga: chcielibyscie wyklady o Ruby?
[19:44] Szejker: o wlasnie, jak w ifie zawrzec, ze jesli proces jest odpalony to ma wykonac instrukcje
[19:44] <@keidii>: breeze: mozna wygrpowac z ps
[19:44] Szejker: a jesli nie, to nie ma wykonac ?
[19:44] faxe: log z wykladu
[19:45] breeze: keidii> odpalony program tez?
[19:45] <@keidii>: breeze: zrob ps aux
[19:45] <@keidii>: i zobacz co jest
[19:45] nooga: hehe
[19:45] nooga: nikt oprocz jaro3000 nie chce
[19:45] Szejker: if [ $( ps aux |grep program ) = ? ] ? ;>
[19:46] faxe: ps aux moze grepnac takze ARGUMENT jakiegos innego peocesu d:
[19:46] Szejker: nooga: a co to Ruby? ;]
[19:46] <@keidii>: if [ "$()" = "" ]; then
[19:46] <@keidii>: NIEMA
[19:46] <@keidii>: else
[19:46] <@keidii>: JEST
[19:46] Szejker: no, ale co ma byc w = "" ?
[19:46] <@keidii>: fi
[19:46] <@keidii>: "" ma byc puste
[19:46] <@keidii>: a w $() ma byc ps aux \ grep
[19:46] jest_parametrem: a co oznacza $? :P
[19:46] Szejker: mhm
[19:46] Gynvael: nooga: ja jestem za
[19:46] jaro3000: nooga: co to jest Ruby ?
[19:46] jaro3000: bo ja sie zgadzalem apropo 19:36 * nooga uwaza ze bash nie wyglada logicznie
[19:46] nooga: a taki jezyk
[19:46] nooga: acha :>
[19:46] jaro3000: wolimy wyklad o perlu :-P
[19:47] Szejker: nooga: a przydatny do czegos? ;p
[19:47] <@keidii>: ok
[19:47] nooga: no
[19:47] jaro3000: bo i tak sie chcialem zaczac uczyc
[19:47] <@keidii>: to do nastepnego razu
[19:47] kamikaze: Gynvael: można Cie z C pomeczyć?
[19:47] <@keidii>: jakies zadanka przygotuje tez ;P
[19:47] <@keidii>: ma ktos loga ?
[19:47] nooga: ha, kij, zrobie jednoczesciowy wyklad o SADOLu :D
[19:47] nooga: co ty na to jaro3000?
[19:47] nooga: :D
[19:47] faxe: http://faxe.ath.cx/wyklady
[19:47] time: Jezeli jest wyklad o bash, to czemu nie o batch? Ktos che wyklad z tego tematu?
[19:48] breeze: ja spadam
[19:48] nooga: time: po co to komu
[19:48] nooga: ?
[19:48] time: A po co komu bash?
[19:48] kamikaze: moze wykład o gotowaniu :)
[19:48] time: Myslenie
[19:48] Gynvael: kamikaze: mozesz
[19:48] jaro3000: nooga: lol - chcemy :-)
[19:48] ccodeguy: hyh...witam, czy sa wogle chetni na jutro 19:30 na wyklad o winapi w c++
[19:48] nooga: time: bo basha sie uzywa a batcha nie
[19:48] kamikaze: Gynvael: priv moze byc?
[19:48] Gynvael: kamikaze: tak
[19:48] time: Batcha sie czesciej od basha uzywa ;)
[19:48] <@keidii>: time: bash jest extra
[19:48] time: Ale sobie sprawy nie zdajesz ;]
[19:49] nooga: time: nie widzialem zeby ktorys user windy kiedykolwiek pokusil sie o napisanie batcha do cezgos
[19:49] <@keidii>: http://nat.mikrus.pw.edu.pl/~eidii/skrypty/ <- przyklady