Merge pull request #1555 from ianiD/ianiD-patching-old-ones

[bash/ro] Changed some old stuff and added diacritics
This commit is contained in:
ven 2016-03-11 09:32:35 +01:00
commit fb711b4426

View File

@ -12,166 +12,171 @@ lang: ro-ro
filename: LearnBash-ro.sh filename: LearnBash-ro.sh
--- ---
Bash este numele shell-ului unix, care a fost de asemenea distribuit drept shell pentru sistemul de operare GNU si ca shell implicit pentru Linux si Mac OS X. Bash este numele shell-ului UNIX, care a fost de asemenea distribuit drept shell pentru sistemul de operare GNU și ca shell implicit pentru Linux si Mac OS X.
Aproape toate exemplele de mai jos pot fi parte dintr-un script sau pot fi executate direct in linia de comanda. Aproape toate exemplele de mai jos pot fi parte dintr-un script sau pot fi executate direct in linia de comanda.
[Citeste mai multe:](http://www.gnu.org/software/bash/manual/bashref.html) [Citește mai multe:](http://www.gnu.org/software/bash/manual/bashref.html)
```bash ```bash
#!/bin/bash #!/bin/bash
# Prima linie din script se numeste "shebang" # Prima linie din script se numeste "shebang"
# care spune systemului cum sa execute scriptul # care spune sistemului cum să execute scriptul
# http://en.wikipedia.org/wiki/Shebang_(Unix) # http://en.wikipedia.org/wiki/Shebang_(Unix)
# Dupa cum te-ai prins deja, comentariile incep cu #. # După cum te-ai prins deja, comentariile încep cu #.
# Shebang este de asemenea un comentariu. # Shebang este de asemenea un comentariu.
# Exemplu simplu de hello world: # Exemplu simplu de hello world:
echo Hello world! echo Hello world!
# Fiecare comanda incepe pe o linie noua, sau dupa punct si virgula ; # Fiecare comandă începe pe o linie nouă, sau după punct și virgula ;
echo 'Prima linie'; echo 'A doua linie' echo 'Prima linie'; echo 'A doua linie'
# Declararea unei variabile se face astfel: # Declararea unei variabile se face astfel:
VARIABLE="Niste text" VARIABLE="Niște text"
# DAR nu asa: # DAR nu așa:
VARIABLE = "Niste text" VARIABLE = "Niste text"
# Bash va crede ca VARIABLE este o comanda care trebuie executata si va # Bash va crede că VARIABLE este o comandă care trebuie executată și va
# returna o eroare pentru ca nu va putea fi gasita. # returna o eroare pentru că nu va putea fi găsita.
# Folosind variabila: # Folosind variabila:
echo $VARIABLE echo $VARIABLE
echo "$VARIABLE" echo "$VARIABLE"
echo '$VARIABLE' echo '$VARIABLE'
# Atunci cand folosesti variabila, o atribui, o exporti sau altfel, # Atunci când folosesti variabila, o atribui, o exporți sau altfel,
# numele ei se scrie fara $. # numele ei se scrie fără $.
# Daca vrei sa folosesti valoarea variabilei, atunci trebuie sa folosesti $. # Daca vrei sa folosesti valoarea variabilei, atunci trebuie să folosești $.
# Atentie la faptul ca ' (apostrof) nu va inlocui variabla cu valoarea ei. # Atentie la faptul că ' (apostrof) nu va inlocui variabla cu valoarea ei.
# Inlocuirea de caractere in variabile # Inlocuirea de caractere în variabile
echo ${VARIABLE/Some/A} echo ${VARIABLE/Niște/Un}
# Asta va inlocui prima aparitie a "Some" cu "A" in variabila de mai sus. # Asta va înlocui prima apariție a "Niște" cu "Un" în variabila de mai sus.
# Substring dintr-o variabila # Substring dintr-o variabilă
echo ${VARIABLE:0:7} echo ${VARIABLE:0:7}
# Asta va returna numai primele 7 caractere din variabila. # Asta va returna numai primele 7 caractere din variabila.
# Valoarea implicita a unei variabile: # Valoarea implicita a unei variabile:
echo ${FOO:-"ValoareaImplicitaDacaFOOLipsesteSauEGoala"} echo ${FOO:-"ValoareaImplicitaDacaFOOLipseșteSauEGoală"}
# Asta functioneaza pentru null (FOO=), # Asta functionează pentru null (FOO=),
# sir de caractere gol (FOO=""), zero (FOO=0) returneaza 0 # sir de caractere gol (FOO=""), zero (FOO=0) returnează 0
# Variabile pre-existente # Variabile pre-existente
echo "Ulima valoare returnata de ultimul program rulat: $?" echo "Ulima valoare returnată de ultimul program rulat: $?"
echo "ID-ul procesului (PID) care ruleaza scriptul: $$" echo "ID-ul procesului (PID) care rulează scriptul: $$"
echo "Numarul de argumente: $#" echo "Numărul de argumente: $#"
echo "Argumentele scriptului: $@" echo "Argumentele scriptului: $@"
echo "Argumentele scriptului separate in variabile: $1 $2..." echo "Argumentele scriptului separate în variabile: $1 $2..."
# Citind o valoare din consola # Citind o valoare din consolă
echo "Care e numele tau?" echo "Care e numele tău?"
read NAME # Observa faptul ca nu a trebuit sa declaram o variabila noua read NAME # Observă faptul că nu a trebuit să declarăm o variabilă nouă
echo Salut, $NAME! echo Salut, $NAME!
# Avem obisnuita instructiune "if" # Avem obisnuita instructiune "if"
# Foloseste "man test" pentru mai multe informatii # Folosește "man test" pentru mai multe informații
# despre instructinea conditionala # despre instrucținea conditionala
if [ $NAME -ne $USER ] if [ $NAME -ne $USER ]
then then
echo "Numele tau este username-ul tau" echo "Numele tău este username-ul tău"
else else
echo "Numele tau nu este username-ul tau" echo "Numele tău nu este username-ul tău"
fi fi
# Este de asemenea si executarea conditionala de comenzi # Există, de asemenea, și executarea conditională de comenzi
echo "Intotdeauna executat" || echo "Executat daca prima instructiune esueaza" echo "Întotdeauna executat" || echo "Executat dacă prima instrucțiune eșuează"
echo "Intotdeauna executat" && echo "Executat daca prima instructiune NU esueaza" echo "Întotdeauna executat" && echo "Executat dacă prima instrucțiune NU esuează"
# Expresiile apar in urmatorul format # Expresiile apar în urmatorul format
echo $(( 10 + 5 )) echo $(( 10 + 5 ))
# Spre deosebire de alte limbaje de programare bash este un shell - asa ca # Spre deosebire de alte limbaje de programare, bash este un shell - așa că
# functioneaza in contextul directorului curent. Poti vedea fisiere si directoare # funcționează in contextul directorului curent. Poți vedea fișiere și directoare
# din directorul curent folosind comanda "ls": # din directorul curent folosind comanda "ls":
ls ls
# Aceste comenzi au optiuni care la controleaza executia # Aceste comenzi au optiuni care le controlează execuțiă
ls -l # Listeaza fiecare fisier si director pe o linie separata ls -l # Listează fiecare fișier și director pe o linie separată
# Rezultatele comenzii anterioare pot fi # Rezultatele comenzii anterioare pot fi
# trimise urmatoarei comenzi drept argument # trimise următoarei comenzi drept argument
# Comanda grep filtreaza argumentele trimise cu sabloane. # Comanda grep filtrează argumentele trimise cu sabloane.
# Astfel putem vedea fiserele .txt din directorul curent. # Astfel putem vedea fiserele .txt din directorul curent.
ls -l | grep "\.txt" ls -l | grep "\.txt"
# De asemenea poti redirectiona o comanda, input si error output # De asemenea, poți redirecționa date de intrare spre sau erori/date de ieșire
python2 hello.py < "input.in" # dinspre o comandă
python2 hello.py > "output.out" python2 hello.py < "intrare.in"
python2 hello.py 2> "error.err" python2 hello.py > "ieșire.out"
# Output-ul va suprascrie fisierul daca acesta exista. python2 hello.py 2> "erori.err"
# Daca vrei sa fie concatenate poti folosi ">>" # Output-ul va suprascrie fișierul dacă acesta există.
# Daca vrei să fie concatenate datele poți folosi ">>" în loc de ">"
# Comenzile pot fi inlocuite in interiorul altor comenzi folosind $( ): # Comenzile pot fi înlocuite în interiorul altor comenzi folosind $( ):
# Urmatoarea comanda afiseaza numarul de fisiere # Urmatoarea comandă afișează numărul de fișiere
# si directoare din directorul curent # și directoare din directorul curent
echo "Sunt $(ls | wc -l) fisiere aici." echo "Sunt $(ls | wc -l) fișiere aici."
# Acelasi lucru se poate obtine folosind apostrf-ul inversat ``, # Același lucru se poate obține folosind apostroful inversat ``,
# dar nu pot fi folosite unele in interiorul celorlalte asa ca modalitatea # dar nu pot fi folosite limbricate, așa ca modalitatea
# preferata este de a folosi $( ) # preferată este de a folosi $( )
echo "Sunt `ls | wc -l` fisiere aici." echo "Sunt `ls | wc -l` fișiere aici."
# Bash foloseste o instructiune 'case' care functioneaza # Bash folosește o instrucțiune 'case' care funcționeaza
# in mod similar cu instructiunea switch din Java si C++ # în mod similar cu instructiunea switch din Java si C++
case "$VARIABLE" in case "$VARIABLE" in
0) echo "Este un zero.";; 0) echo "Este un zero.";;
1) echo "Este un unu.";; 1) echo "Este un unu.";;
*) echo "Nu este null";; *) echo "Nu este null";;
esac esac
# Instructiunea for parcurge toate elementele trimise: # Instrucțiunea 'for' parcurge toate elementele trimise:
# Continutul variabilei $VARIABLE este printat de 3 ori # Conținutul variabilei $VARIABLE este printat de 3 ori
for VARIABLE in {1..3} for VARIABLE in {1..3}
do do
echo "$VARIABLE" echo "$VARIABLE"
done done
# while loop: # Buclă while:
while [true] while [true]
do do
echo "in interiorul iteratiei aici..." echo "în interiorul iterației aici..."
break break
done done
# De asemenea poti defini functii # De asemenea poți defini funcții
# Definitie: # Definiție:
function foo () function foo ()
{ {
echo "Argumentele functioneaza ca si argumentele scriptului: $@" echo "Argumentele funcționeaza ca și argumentele scriptului: $@"
echo "Si: $1 $2..." echo "Si: $1 $2..."
echo "Asta este o functie" echo "Asta este o funcție"
return 0 return 0
} }
# sau mai simplu # sau mai simplu:
bar () bar ()
{ {
echo "Alta metoda de a declara o functie" echo "Altă metodă de a declara o funcție"
return 0 return 0
} }
# Invocarea unei functii # Invocarea unei funcții:
foo "Numele meu este: " $NAME foo "Numele meu este: " $NAME
# Sunt o multime de comenzi utile pe care ar trebui sa le inveti: # Sunt o multime de comenzi utile pe care ar trebui să le inveți:
tail -n 10 file.txt tail -n 10 file.txt
# printeaza ultimele 10 linii din fisierul file.txt # afișează ultimele 10 linii din fișierul file.txt
head -n 10 file.txt head -n 10 file.txt
# printeaza primele 10 linii din fisierul file.txt # afișează primele 10 linii din fișierul file.txt
sort file.txt sort file.txt
# sorteaza liniile din file.txt # sortează liniile din file.txt
uniq -d file.txt uniq -d file.txt
# raporteaza sau omite liniile care se repeta, cu -d le raporteaza # raporteaza sau omite liniile care se repetă. Cu -d le raporteaza
cut -d ',' -f 1 file.txt cut -d ',' -f 1 file.txt
# printeaza doar prima coloana inainte de caracterul "," # printează doar prima coloană inainte de caracterul ","
``` ```