| FAQ • H�ada� • Zoznam u��vate�ov • U��vate�sk� skupiny • Registr�cia • Nastavenia • S�kromn� spr�vy • Prihl�senie |
|
Hodnosti • IP Adresa • RSS • V�zenie • |
| Coding in BASH #1 | Zobrazi� nasleduj�cu t�mu Zobrazi� predch�dzaj�cu t�mu |
| Autor | Spr�va |
|---|---|
| Kain Webmaster Zalo�en�: 27 Dec 2007 | |
| Zaslal: Sun Dec 30, 2007 9:36 pm |
Tak�e v�tam v�s pri seri�ly �l�nkov o programovan� v linux�ckom BASH-i. Aby som bol konkr�tny ide o �ll�nky zameran� na shell, tu s� : �l�nok 1 �l�nok 2 . Riadiace �trukt�ry Tak� logick� riadiacu �trukt�ru si m��me vybavi� nejak takto : tak�to script by sme v bashi realizovali pomocou if, while, until, for a case. Jedna z napou��vanej��ch riadiacich �trukt�r v bash scriptoch je pr�ve if. Pr�klad : Tento pr�klad teda na z�klade vyhodnotenia pr�kazom test soubor /etc/hosts skop�ruje alebo pokial neexistuje soubor, vyp�e sa chybov� hl�senie. K otestovaniu existovania souboru je pou�it� pr�kaz test. Pr�kaz na z�klade prep�na�a -f ur��, �i je /etc/hosts soubor. Dal�ie mo�nosti prep�na�ov pr�kazu test zhrnuje nasleduj�ca tabulka. Pokial nieje splnen� podmienka testovan� pr�kazom if, neprevedie sa vtedy blok pr�kazu uveden� za slovom then, ale za to sa preved� pr�kazy v bloku zah�jen� pr�kazom else (pokial se vyskytuje). Existuje taktie� slovo elif. To je pou��van� pre testovanie podmienky namiesto pr�kazu else. Norm�lne sa toti� blok pr�kazu za��naj�ci else prevedie automaticky po nesplnen� podmienky. Ale pr�kaz elif namiesto pr�kazu else umo�n�, �e sa tento blok prevedie len pokial vyhovie podmienka za pr�kazom elif. Struktura while je struktura cyklu. V podstate vykon�v� blok pr�kazov tak dlho, dokedy je spln� podmienka uvedena za slovom while. Pr�klad struktury while : tento pr�klad je toti� dos� obtia�ny rpe syst�m preto�e v�dy overuje hodnotu true, jednoduch�� Dvojbodka je toti� intern� pr�kaz interpretru bash. Tento pr�klad je v�ak nepraktick�, tak poj�me na dal�� u� viac u�ito�n�. V n�sleduj�com pr�klade pou�ijeme premenn� x, ktor� bude pri ka�dom priechode cyklu zvy�ovat svoju hodnotu a to a� do tej doby k�m dosiahne hodnotu 5. Ako vid�te, pou��v�me pr�kaz test (hranat� z�vorky), aby sme zistili, ci hodnota premennej x je men�ia alebo rovn� 5. Pokial je men�ia alebo rovn� 5, test je vyhodnoten� jako true a blok pr�kazu za slovom do sa m��e previest. Pokial je v�ak podmienka vyhodnoten� ako false, pokra�uje program v behu za slovom done. Mo�nosti pr�kazu test : D�fam, �e nebude ta�k� porozumiet i dal�iemu pr�kazu v scripte a to je expr. Tento pr�kaz v scripte pri��ta k premennej x hodnotu 1 a vr�t� to do x. Co znamen� $(…)? Tato kon�trukcia zariadi, �e hodnota v�sledku v�razu v z�vork�ch sa zap�e ako hodnota do v�razu, ktor� t�to konstrukciu obsahuje. Je teda mo�n� t�mto zp�sobom napr�klad zistit pod ak�m menom ste prihlasen� do syst�mu. Ur�ite ste si v�imli �e je to dos� nepraktick�. Zdroj : Socket |
| k�d: |
| ak /etc/hosts existuje tak : kop�ruj /etc/hosts do aktivneho adres�ra napi� na obrazovku „Hotovo!“ inak napi� na obrazovku „Soubor neexistuje!“ koniec |
| k�d: |
| #!/bin/bash if test -f /etc/hosts then #Soubor existuje. Skop�ruj teda so�bor cp /etc/hosts . echo „Hotovo!“ else #Soubor neexistuje. Vypi� teda chybu echo „Soubor neexistuje!“ exit fi |
| k�d: |
| Mo�nosti pr�kazu test -d testuje, ci soubor je adres�r -e testuje, ci soubor existuje -f testuje, ci sa jedn� o regul�rny so�bor -g testuje, ci m� soubor povolenie SIGD -r testuje, ci ide soubor c�ta� -s testuje, ci velkost souboru nieje 0 -u testuje, ci m� soubor povolenie SUID -w testuje, ci sa d� do souboru zapisovat -x testuje, ci je soubor spustiteln� |
| k�d: |
| #!/bin/bash while true; do echo „Stisni Ctrl-C pre exit.“ done |
| k�d: |
| #!/bin/bash while :; do echo „Stisni Ctrl-C pre exit.“ done |
| k�d: |
| #!/bin/bash x=0; # inicializuje hodnotu x na 0 while [ „$x“ -le 5 ]; do echo „Aktu�lna hodnota x: $x“ # zv��enie hodnoty x o 1 x=$(expr $x + 1) sleep 1 done |
| k�d: |
| Pre c�sla: x -eq y Testuje, ci x=y x -ne y Testuje, ci x!=y (nerovn� se) x -qt y Testjue, ci x>y x -lt y Testuje, ci x<y Pre retazce: x = y Testuje, ci s� retazce zhodn� x != y Testuje, ci s� retazce rozdielne -n x Vr�ti true, pokial nieje retazec pr�zdny -z x Vr�ti true, pokial je retazec pr�zdny |
| k�d: |
| #!/bin/bash x=$(whoami) echo „Ja som $x.“ |
| k�d: |
| #!/bin/bash echo „Ja som $(whoami).“ |
| Zobrazi� pr�spevky z predch�dzaj�cich: |
Zobrazi� nasleduj�cu t�mu Zobrazi� predch�dzaj�cu t�mu Nem��ete prid�va� nov� t�my do tohto f�ra. Nem��ete odpoveda� na t�my v tomto f�re. Nem��ete upravova� svoje pr�spevky v tomto f�re. Nem��ete maza� svoje pr�spevky v tomto f�re. Nem��ete hlasova� v tomto f�re. |
| Prejdi na: |