Jednoduché príkazy cd adresar - prvé slovo = príkaz, ostatné sa prevezme ako argumenty --------------------------- Návratové hodnoty 0 = úspešné ukončenie 0 až 127 = chybový stav 128 a viac = Číslo chyby - 128 = návratová hodnota Príklad: ls pokus echo $? 0 ls neexistuje echo $? 2 --------------------------- Zoznamy = jedno, alebo viac spojení napr.: ls | more & na konci znamená, že sa nečaká na dokončenie príkazu napr.: fing / -name ".profile" > vysledok 2 > chyby & [1] 2632 jobs [1]+ Running find / -name ".profile".... napr.: cd adresar & ls ; = príkazy sú vykonané sekvenčne (shell počká na dokončenie prvého príkazu a až potom spustí nasledujúci napr.: cd adresar; ls - to je to isté ako: cd adresar ls && logický súčin napr.: cd adresar && ls - druhý príkaz sa vykoná, len ak prvý skončí s nulovým návratovým kódom. || logický súčet napr.: cd adresar || mkdir adresar - ak adresár neexistuje, prejde do druhej časti, aby súčet bol jedna, čiže vytvorí adresár. Ak adresár existuje, otvorí sa ako pracovný adresár a druhá časť je zbytočná. ---------------------------- Zátvorkovanie zabovsky@frios:~/pokus$ (pwd; cd adresar; pwd); pwd /home/zabovsky/pokus /home/zabovsky/pokus/adresar /home/zabovsky/pokus - v tomto prípade sa vytvorí kópia a po splnení príkazu sa stratí. zabovsky@frios:~/pokus$ { pwd; cd adresar; pwd;}; pwd /home/zabovsky/pokus /home/zabovsky/pokus/adresar /home/zabovsky/pokus/adresar - v tomto prípade sa vykoná v aktuálnom shelli ----------------------------- Potlačenie významu metaznakov touch a b - vytvorí 2 priečinky, "a" a "b" touch a\ b - vytvorí priečinok "a b" echo 'Otec&Syn' Otec&Syn - riadiace znaky stratili svoj význam uzavretím do apostrofov ----------------------------- EXPANZIE Expanzia pomocou zložených zátvoriek: mkdir /home/zabovsky/pokus/{old,new,dist,bugs} - vytvorí tieto 4 priečinky Vlnovková expanzia: cd ~uzivatelske_meno - všetky znaky za vlnovkou až po lomítko interpretujú ako používateľské meno Expanzia parametrov: ${param} alebo $param Modifikácia parametrov: ${param:-hodnota} - použije sa implicitná hodnota v prípade, že neexistuje prameter param ${param:=hodnota} - parametru param sa priradí implicitná hodnota ${param:?[hodnota]} - oznámi sa chyba, ak je parameter prázdny alebo nedefinovaný Napr.: echo ${ODPOVED:?'Nebola zadana odpoved!'} - ak je prázdne, tak vypíše text v '' ${#param} - oznámi dĺžku reťazca Expanzia v reťazcoch: Napr.: FILE=subor.c ${param%hodnota} echo ${FILE%.c} - vypíše len subor Napr.: ${param%%hodnota} - odstráni sufix ${param#hodnota} - odstráni prefix Nahradenie výstupu príkazom: echo $(ls | sort -r) - vypíše to všetko v jednom riadku Aritmetická expanzia: a=1 b=2 echo $[a+b] alebo echo $((a+b)) Povolené operátory: + - unárne plus a mínus ! ~ logická negácia a inverzia bitov * / % násobenie, delenie a zvyšok po delení + - sčítanie a odčítanie << >> bitový posun doľava a doprava <= => < > porovnanie == != rovnosť a nerovnosť & bitový súčin (AND) ^ exkluzívny bitový súčet (XOR) | bitový súčin (OR) && logický súčin || logický súčet = *= /= %= += -= <<= >>= &= ^= != operácie priradenia výsledku ------------------------ #Komentáre ------------------------ SKRIPT ./nazov_skriptu - spustenie skriptu . nazov_skriptu - otvorenie skriptu, ak sa nedá spustiť. ------------------------ PREMENNÉ $MENO napr.: ADRESAR=/home/zabovsky/export ls $ADRESAR mkdir $ADRESAR/projekt ------------------------ POZIČNÉ PARAMETRE $n echo Parameter jedna = $1 echo Parameter dva = $2 echo Parameter tri = $3 echo Pocet parametrov $# zabovsky@frios:~$ . skript jedna dva tri styri pat Parameter jedna = jedna Parameter dva = dva Parameter tri = tri Pocet parametrov 5 ------------------------- ZVLÁŠTNE PARAMETRE $* parameter expanduje do všetkých zadaných pozičných parametrov $# parameter expanduje do počtu aktuálne nastavených pozičných parametrov $? parameter expanduje do návratového kódu posledného ukončeného príkazu bežiaceho v popredí $$ parameter expanduje do čísla procesu aktuálne bežiaceho shellu $0 parameter expanduje do mena aktuálneho shellu -------------------------