<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ro">
		<id>https://wiki.lug.ro/index.php?action=history&amp;feed=atom&amp;title=Scurt%C4%83_Introducere_Bash</id>
		<title>Scurtă Introducere Bash - Revizia istoricului</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.lug.ro/index.php?action=history&amp;feed=atom&amp;title=Scurt%C4%83_Introducere_Bash"/>
		<link rel="alternate" type="text/html" href="https://wiki.lug.ro/index.php?title=Scurt%C4%83_Introducere_Bash&amp;action=history"/>
		<updated>2026-04-23T18:51:56Z</updated>
		<subtitle>Istoricul versiunilor pentru această pagină din wiki</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>https://wiki.lug.ro/index.php?title=Scurt%C4%83_Introducere_Bash&amp;diff=2405&amp;oldid=prev</id>
		<title>Lc la 4 septembrie 2006 13:41</title>
		<link rel="alternate" type="text/html" href="https://wiki.lug.ro/index.php?title=Scurt%C4%83_Introducere_Bash&amp;diff=2405&amp;oldid=prev"/>
				<updated>2006-09-04T13:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pagină nouă&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Articol adaptat după http://www.justlinux.com/nhf/Programming/Bash_Programming_Cheat_Sheet.html, de ph43r.&lt;br /&gt;
&lt;br /&gt;
Articolul este o scurtă introducere în limbajul de scripting Bash, pentru cei care cunosc deja un alt limbaj de programare. Intenţia articolului este de a descrie într-un mod simplu şi practic sintaxa limbajului, fără a încerca să vă înveţe programare, şi fără a intra în amănunte.&lt;br /&gt;
&lt;br /&gt;
=Introducere=&lt;br /&gt;
&lt;br /&gt;
Toate scripturile bash încep cu următoarea linie de program:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
&lt;br /&gt;
Acestă linie îi spune sistemului de operare ce interpretor să folosească. Pentru a îl rula este nevoie ca scriptul să fie executabil:&lt;br /&gt;
&lt;br /&gt;
 chmod +x script.sh&lt;br /&gt;
&lt;br /&gt;
=Variabile=&lt;br /&gt;
&lt;br /&gt;
Variabilele nu au un tip strict definit. O variabilă poate fi orice: string, număr, etc. Exemple:&lt;br /&gt;
&lt;br /&gt;
 VAR1=&amp;quot;some string&amp;quot;&lt;br /&gt;
 VAR2=9&lt;br /&gt;
&lt;br /&gt;
O variabilă este accesată adăugând semnul $ în faţa ei:&lt;br /&gt;
&lt;br /&gt;
 echo $VAR1&lt;br /&gt;
 echo $VAR2&lt;br /&gt;
&lt;br /&gt;
Valorile pasate ca argumente scriptului sunt accesate ca $n unde n este poziţia pe linia de comandă, astfel&lt;br /&gt;
 &lt;br /&gt;
 ~/script.sh var1 var2 var3&lt;br /&gt;
&lt;br /&gt;
variabila $1 este egală cu &amp;quot;var1&amp;quot;, $2 cu &amp;quot;var2&amp;quot;, $3 cu &amp;quot;var3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Variabile built-in:&lt;br /&gt;
&lt;br /&gt;
 Variabila    Utilizare&lt;br /&gt;
 $0           Numele scriptului (script.sh în exemplul de mai sus)&lt;br /&gt;
 $1-$N        Argumentele de pe linia de comandă&lt;br /&gt;
 $?           Valoarea de ieşire a ultimei comenzi executate&lt;br /&gt;
 $*           Un string conţinând toate argumentele de pe linia de comandă (&amp;quot;var1 var2 var3&amp;quot; în exemplul de mai sus)&lt;br /&gt;
 &amp;quot;$@&amp;quot;         O altă variantă a lui $* (&amp;quot;var1&amp;quot; &amp;quot;var2&amp;quot; &amp;quot;var3&amp;quot; în exemplul de mai sus).&lt;br /&gt;
&lt;br /&gt;
=&amp;quot;Ghilimele&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
Ghilimelele &amp;quot;duble&amp;quot; îi spun interpretorului să ignore spaţiul liber dintre cuvinte şi să folosească stringul ca un singur argument. Caracterele speciale sunt interpretate.&lt;br /&gt;
&lt;br /&gt;
Ghilimelele 'simple' îi spun interpretorului să ignore spaţiul liber dintre cuvinte şi caracterele speciale.&lt;br /&gt;
&lt;br /&gt;
Ghilimelele `aflate de regulă deasupra tastei TAB` îi spun interpretorului să execute comanda pe care o delimitează iar rezultatul să-l folosească pe post de string. De exemplu dacă doriţi o listă a tuturor fişierelor din directorul curent, introduceţi o linie de program de genul:&lt;br /&gt;
&lt;br /&gt;
 files=`ls`&lt;br /&gt;
&lt;br /&gt;
Rezultatul se găseşte în variabila files.&lt;br /&gt;
&lt;br /&gt;
=Teste logice şi comparaţii=&lt;br /&gt;
&lt;br /&gt;
Folosiţi comanda test pentru a evalua o expresie condiţională. Comanda are două forme:&lt;br /&gt;
&lt;br /&gt;
 test expresie&lt;br /&gt;
&lt;br /&gt;
sau&lt;br /&gt;
&lt;br /&gt;
 [expresie]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Comparaţii numerice==&lt;br /&gt;
&lt;br /&gt;
 int1 -eq int2 	  	returnează True dacă int1 este egal cu int2&lt;br /&gt;
 int1 -ge int2 	  	returnează True dacă int1 este mai mare sau egal cu int2&lt;br /&gt;
 int1 -gt int2 	  	returnează True dacă int1 este mai mare decât int2.&lt;br /&gt;
 int1 -le int2 	  	returnează True dacă int1 este mai mic sau egal cu int2&lt;br /&gt;
 int1 -lt int2 	  	returnează True dacă int1 este mai mic decât int2&lt;br /&gt;
 int1 -ne int2 	  	returnează True dacă int1 nu este egal cu int2&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Comparaţii de stringuri==&lt;br /&gt;
&lt;br /&gt;
 str1 = str2 	  	returnează True dacă cele două stringuri sunt identice&lt;br /&gt;
 str1 != str2 	  	returnează True dacă cele două stringuri nu sunt identice&lt;br /&gt;
 str 	  		returnează True dacă str este null&lt;br /&gt;
 -n str 	  		returnează True dacă lungimea stringului este mai mare ca zero&lt;br /&gt;
 -z str 	  		returnează True dacă lungimea stringului este zero&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==Comparaţii de fişiere==&lt;br /&gt;
&lt;br /&gt;
 -d filename 	  	returnează True dacă filename este un director&lt;br /&gt;
 -f filename 	  	returnează True dacă filename este un fişier normal&lt;br /&gt;
 -r filename 	  	returnează True dacă filename poate fi citit&lt;br /&gt;
 -s filename 	  	returnează True dacă filename nu este gol&lt;br /&gt;
 -w filename 	  	returnează True dacă filename poate fi scris&lt;br /&gt;
 -x filename 	  	returnează True dacă filename este executabil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Expresii logice==&lt;br /&gt;
&lt;br /&gt;
 !expression 	  	negare&lt;br /&gt;
 expr1 -a expr2 	  	şi (se mai poate folosi &amp;amp;&amp;amp;, and)&lt;br /&gt;
 expr1 -o expr2 	  	sau (se mai poate folosi ||, or)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Blocuri logice=&lt;br /&gt;
&lt;br /&gt;
==If...then==&lt;br /&gt;
&lt;br /&gt;
 if [ expression ]&lt;br /&gt;
         then&lt;br /&gt;
                 commands&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Exemplu:&lt;br /&gt;
&lt;br /&gt;
 VAR2=9&lt;br /&gt;
 if [ $VAR2 -eq 9 ]&lt;br /&gt;
         then&lt;br /&gt;
         	     echo $VAR2&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Folosim o comparaţie numerică, observaţi cum VAR2 este accesată ca $VAR2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==If..then...else==&lt;br /&gt;
&lt;br /&gt;
 if [ expression ]&lt;br /&gt;
         then&lt;br /&gt;
                 commands&lt;br /&gt;
         else&lt;br /&gt;
                 commands&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Exemplu:&lt;br /&gt;
&lt;br /&gt;
 VAR1=&amp;quot;some other string&amp;quot;&lt;br /&gt;
 if [ &amp;quot;$VAR1&amp;quot; = &amp;quot;some string&amp;quot; ]&lt;br /&gt;
         then&lt;br /&gt;
         	echo &amp;quot;string found&amp;quot;&lt;br /&gt;
         else&lt;br /&gt;
         	echo &amp;quot;string not found&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Folosim o comparaţie de stringuri, observaţi cum VAR1 este accesată ca &amp;quot;$VAR1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==If..then...else If...else==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 if [ expression ]&lt;br /&gt;
         then&lt;br /&gt;
                 commands&lt;br /&gt;
 elif [ expression2 ]&lt;br /&gt;
         then&lt;br /&gt;
                 commands&lt;br /&gt;
 else&lt;br /&gt;
                 commands&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
==Case select==&lt;br /&gt;
&lt;br /&gt;
 case string1 in&lt;br /&gt;
         str1)&lt;br /&gt;
                 commands;;&lt;br /&gt;
         str2)&lt;br /&gt;
                 commands;;&lt;br /&gt;
         *)&lt;br /&gt;
                 commands;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
string1 este comparat cu str1 şi str2, comenzile respective până la semnul ;; fiind executate. Condiţia default este marcată cu *).&lt;br /&gt;
&lt;br /&gt;
=Iterare=&lt;br /&gt;
&lt;br /&gt;
==Loops==&lt;br /&gt;
&lt;br /&gt;
 for var1 in list&lt;br /&gt;
 do&lt;br /&gt;
         commands&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Aceasta execută comanads pentru fiecare element al listei list. O listă poate fi un string de câteva cuvinte separate prin spaţiu.&lt;br /&gt;
La fiecare iteraţie variabila var1 este iniţializată cu cuvântul corespunzător din listă.&lt;br /&gt;
&lt;br /&gt;
==While==&lt;br /&gt;
&lt;br /&gt;
 while [ expression ]&lt;br /&gt;
 do&lt;br /&gt;
         commands&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
==Until==&lt;br /&gt;
&lt;br /&gt;
 until [ expression ]&lt;br /&gt;
 do&lt;br /&gt;
         commands&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=Funcţii=&lt;br /&gt;
&lt;br /&gt;
Exemplu:&lt;br /&gt;
&lt;br /&gt;
 fname(){&lt;br /&gt;
         commands&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Apelare:&lt;br /&gt;
&lt;br /&gt;
 fname&lt;br /&gt;
&lt;br /&gt;
Exemplu funcţie cu mai multe argumente:&lt;br /&gt;
&lt;br /&gt;
 fname2 (arg1,arg2...argN) {&lt;br /&gt;
         commands&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Apelare:&lt;br /&gt;
&lt;br /&gt;
 fname2 arg1 arg2 ... argN&lt;/div&gt;</summary>
		<author><name>Lc</name></author>	</entry>

	</feed>