mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 07:12:31 +03:00
fixed typos, a little bit of formatting
This commit is contained in:
parent
54cde3d98d
commit
e8264c3fa9
@ -12,16 +12,18 @@ lang: ro-ro
|
||||
filename: LearnBash-ro.sh
|
||||
---
|
||||
|
||||
Bash este numele shell-ului unix, care a fost de asemenea distribuit drept shell pentru 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 si 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.
|
||||
|
||||
[Citeste mai multe:](http://www.gnu.org/software/bash/manual/bashref.html)
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Prima linie din script se numeste "shebang" care spune systemului cum sa execute scriptul
|
||||
# Prima linie din script se numeste "shebang"
|
||||
# care spune systemului cum sa execute scriptul
|
||||
# http://en.wikipedia.org/wiki/Shebang_(Unix)
|
||||
# Dupa cum te-ai prins deja, comentariile incep cu #. Shebang este de asemenea un comentariu.
|
||||
# Dupa cum te-ai prins deja, comentariile incep cu #.
|
||||
# Shebang este de asemenea un comentariu.
|
||||
|
||||
# Exemplu simplu de hello world:
|
||||
echo Hello world!
|
||||
@ -41,7 +43,8 @@ VARIABLE = "Niste text"
|
||||
echo $VARIABLE
|
||||
echo "$VARIABLE"
|
||||
echo '$VARIABLE'
|
||||
# Atunci cand folosesti variabila, o atribui, o exporti sau altfel, numele ei se scrie fara $.
|
||||
# Atunci cand folosesti variabila, o atribui, o exporti sau altfel,
|
||||
# numele ei se scrie fara $.
|
||||
# Daca vrei sa folosesti valoarea variabilei, atunci trebuie sa folosesti $.
|
||||
# Atentie la faptul ca ' (apostrof) nu va inlocui variabla cu valoarea ei.
|
||||
|
||||
@ -55,7 +58,8 @@ echo ${VARIABLE:0:7}
|
||||
|
||||
# Valoarea implicita a unei variabile:
|
||||
echo ${FOO:-"ValoareaImplicitaDacaFOOLipsesteSauEGoala"}
|
||||
# Asta functioneaza pentru null (FOO=), sir de caractere gol (FOO=""), zero (FOO=0) returneaza 0
|
||||
# Asta functioneaza pentru null (FOO=),
|
||||
# sir de caractere gol (FOO=""), zero (FOO=0) returneaza 0
|
||||
|
||||
# Variabile pre-existente
|
||||
echo "Ulima valoare returnata de ultimul program rulat: $?"
|
||||
@ -70,7 +74,8 @@ read NAME # Observa faptul ca nu a trebuit sa declaram o variabila noua
|
||||
echo Salut, $NAME!
|
||||
|
||||
# Avem obisnuita instructiune "if"
|
||||
# Foloseste "man test" pentru mai multe informatii despre instructinea conditionala
|
||||
# Foloseste "man test" pentru mai multe informatii
|
||||
# despre instructinea conditionala
|
||||
if [ $NAME -ne $USER ]
|
||||
then
|
||||
echo "Numele tau este username-ul tau"
|
||||
@ -79,8 +84,8 @@ else
|
||||
fi
|
||||
|
||||
# Este de asemenea si executarea conditionala de comenzi
|
||||
echo "Intotdeauna executat" || echo "Executat numai daca prima instructiune esueaza"
|
||||
echo "Intotdeauna executat" && echo "Executat numai daca prima instructiune NU esueaza"
|
||||
echo "Intotdeauna executat" || echo "Executat daca prima instructiune esueaza"
|
||||
echo "Intotdeauna executat" && echo "Executat daca prima instructiune NU esueaza"
|
||||
|
||||
# Expresiile apar in urmatorul format
|
||||
echo $(( 10 + 5 ))
|
||||
@ -93,9 +98,10 @@ ls
|
||||
# Aceste comenzi au optiuni care la controleaza executia
|
||||
ls -l # Listeaza fiecare fisier si director pe o linie separata
|
||||
|
||||
# Rezultatele comenzii precedente poate fi trimis urmatoarei comenzi drept argument
|
||||
# Comanda grep filtreaza argumentele trimise cu sabloane. Astfel putem vedea fiserele
|
||||
# .txt din directorul curent.
|
||||
# Rezultatele comenzii anterioare pot fi
|
||||
# trimise urmatoarei comenzi drept argument
|
||||
# Comanda grep filtreaza argumentele trimise cu sabloane.
|
||||
# Astfel putem vedea fiserele .txt din directorul curent.
|
||||
ls -l | grep "\.txt"
|
||||
|
||||
# De asemenea poti redirectiona o comanda, input si error output
|
||||
@ -106,17 +112,17 @@ python2 hello.py 2> "error.err"
|
||||
# Daca vrei sa fie concatenate poti folosi ">>"
|
||||
|
||||
# Comenzile pot fi inlocuite in interiorul altor comenzi folosind $( ):
|
||||
# Urmatoarea comanda afiseaza numarul de fisiere si directoare din directorul curent
|
||||
# Urmatoarea comanda afiseaza numarul de fisiere
|
||||
# si directoare din directorul curent
|
||||
echo "Sunt $(ls | wc -l) fisiere aici."
|
||||
|
||||
# The same can be done using backticks `` but they can't be nested - the preferred way
|
||||
# is to use $( ).
|
||||
# Acelasi lucru se poate obtine folosind apostrf-ul inversat ``, dar nu pot fi folosite
|
||||
# unele in interiorul celorlalte asa ca modalitatea preferata este de a folosi $( )
|
||||
# Acelasi lucru se poate obtine folosind apostrf-ul inversat ``,
|
||||
# dar nu pot fi folosite unele in interiorul celorlalte asa ca modalitatea
|
||||
# preferata este de a folosi $( )
|
||||
echo "Sunt `ls | wc -l` fisiere aici."
|
||||
|
||||
# Bash foloseste o instructiune 'case' care functioneaza in mod similar cu instructiunea
|
||||
# switch din Java si C++
|
||||
# Bash foloseste o instructiune 'case' care functioneaza
|
||||
# in mod similar cu instructiunea switch din Java si C++
|
||||
case "$VARIABLE" in
|
||||
0) echo "Este un zero.";;
|
||||
1) echo "Este un unu.";;
|
||||
|
@ -78,9 +78,9 @@ false.class #=> FalseClass
|
||||
'Sunt un sir de caractere'.class #=> String
|
||||
"Si eu sunt un sir de caractere".class #=> String
|
||||
|
||||
fi_inlocuit = "inlocui o valoare in string"
|
||||
fi_inlocuit = "fi inlocuit"
|
||||
"Pot #{fi_inlocuit} atunci cand folosesc dublu apostrof"
|
||||
#=> "Pot inlocui o valoare intr-un sir de caractere atunci cand folosesc dublu apostrof"
|
||||
#=> "Pot fi inlocuit atunci cand folosesc dublu apostrof"
|
||||
|
||||
|
||||
# Printeaza
|
||||
@ -106,7 +106,8 @@ adresa = '/nume/nu atat de bun/'
|
||||
|
||||
# Simbolurile (sunt obiecte)
|
||||
# Simbolurile sunt constante imutabile, reutilizabile, reprezentate intern
|
||||
# de o valoare numerica. Sunt deseori folosite in locul sirurilor de caractere pentru a da un nume reprezentativ unei valori
|
||||
# de o valoare numerica. Sunt deseori folosite in locul sirurilor de caractere
|
||||
# pentru a da un nume reprezentativ unei valori
|
||||
|
||||
:exemplu_simbol.class #=> Symbol
|
||||
|
||||
@ -160,10 +161,12 @@ hash.keys #=> ['culoare', 'numar']
|
||||
hash['culoare'] #=> 'verde'
|
||||
hash['numar'] #=> 5
|
||||
|
||||
# Incercand sa accesezi un element dintr-un hash printr-o cheie care nu exista va returna "nil".
|
||||
# Incercand sa accesezi un element dintr-un hash
|
||||
# printr-o cheie care nu exista va returna "nil".
|
||||
hash['nimic_aici'] #=> nil
|
||||
|
||||
# Incepand cu Ruby 1.9, este o sintaxa speciala pentru atunci cand se folosesc simboluri drept chei:
|
||||
# Incepand cu Ruby 1.9, este o sintaxa speciala
|
||||
# pentru atunci cand se folosesc simboluri drept chei:
|
||||
|
||||
hash_nou = { defcon: 3, actiune: true}
|
||||
|
||||
@ -195,10 +198,11 @@ end
|
||||
# TOTUSI, Nici una nu foloseste instructiunea for
|
||||
# In locul acesteia ar trebui sa folosesti metoda "each" si sa ii trimiti un block
|
||||
# Un bloc este o bucata de cod pe care o poti trimite unei metode precum "each".
|
||||
# Este analog pentru "lambda", functii anonime, sau closures in alte limbaje de programare.
|
||||
# Este analog pentru "lambda", functii anonime,
|
||||
# sau closures in alte limbaje de programare.
|
||||
#
|
||||
# The "each" method of a range runs the block once for each element of the range.
|
||||
# Metoda "each" a unui interval, ruleaza block-ul o data pentru fiecare element din interval.
|
||||
# Metoda "each" a unui interval, ruleaza block-ul o data
|
||||
# pentru fiecare element din interval.
|
||||
# Block-ul primeste ca si parametru un index
|
||||
# Invocand metoda "each" cu un block, arata in urmatorul fel:
|
||||
|
||||
@ -256,7 +260,8 @@ def dublu(x)
|
||||
x * 2
|
||||
end
|
||||
|
||||
# Functille (si toate block-urile) returneaza implicit valoarea ultimei instructiuni
|
||||
# Functille (si toate block-urile)
|
||||
# returneaza implicit valoarea ultimei instructiuni
|
||||
dublu(2) #=> 4
|
||||
|
||||
# Parantezele sunt optionale cand rezultatul nu este ambiguu
|
||||
@ -312,7 +317,8 @@ class Om
|
||||
def initialize(nume, varsta=0)
|
||||
# Atribuie argumentul, variabilei "nume", care apartine doar unei instante
|
||||
@nume = nume
|
||||
# Daca varsta nu este data, o sa ii atribuim valoarea implicita din lista de argumente (0, in cazul nostru)
|
||||
# Daca varsta nu este data, o sa ii atribuim valoarea implicita
|
||||
# din lista de argumente (0, in cazul nostru)
|
||||
@varsta = varsta
|
||||
end
|
||||
|
||||
@ -326,14 +332,17 @@ class Om
|
||||
@nume
|
||||
end
|
||||
|
||||
# Functionalitatea de mai sus poate fi obtinuta folosing metoda "attr_accessor" dupa cum urmeaza:
|
||||
# Functionalitatea de mai sus poate fi obtinuta
|
||||
# folosing metoda "attr_accessor" dupa cum urmeaza:
|
||||
attr_accessor :nume
|
||||
|
||||
# Metodele pentru a lua si a seta valoarea unei variabile pot fi de asemenea obtinute individial:
|
||||
# Metodele pentru a lua si a seta valoarea unei variabile
|
||||
# pot fi de asemenea obtinute individial:
|
||||
attr_reader :nume
|
||||
attr_writer :nume
|
||||
|
||||
# O metoda apartinand unei clase foloseste "self" pentru a se diferentia de metodele unei instante ale clasei respective
|
||||
# O metoda apartinand unei clase foloseste "self" pentru a se diferentia
|
||||
# de metodele unei instante ale clasei respective
|
||||
# Poate fi invocata doar pe clasa, si nu pe o instanta a acesteia
|
||||
def self.spune(msg)
|
||||
puts "#{msg}"
|
||||
@ -380,8 +389,10 @@ defined? @@var #=> "class variable"
|
||||
Var = "Sunt o constanta"
|
||||
defined? Var #=> "constant"
|
||||
|
||||
# Clasele sunt de asemenea obiecte in ruby. Astfel incat clasele pot avea variabile care apartin unei instante
|
||||
# O variabila care apartine unei clase poate fi accesata de toate instantele acesteia si de clasele care o extind
|
||||
# Clasele sunt de asemenea obiecte in ruby. Astfel incat clasele
|
||||
# pot avea variabile care apartin unei instante
|
||||
# O variabila care apartine unei clase poate fi accesata de toate
|
||||
# instantele acesteia si de clasele care o extind
|
||||
|
||||
# clasa parinte
|
||||
class Om
|
||||
@ -406,7 +417,8 @@ Muncitor.foo # 0
|
||||
Om.foo = 2 # 2
|
||||
Muncitor.foo # 2
|
||||
|
||||
# Variabilele care apartin unei instante ale unei clase, nu sunt impartite de (copii acesteia) clasele care o extind
|
||||
# Variabilele care apartin unei instante ale unei clase,
|
||||
# nu sunt impartite de (copii acesteia) clasele care o extind
|
||||
class Om
|
||||
@bar = 0
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user