Pastila de shell (despre variabile)

Mai jos, câteva „facts” despre variabile în bash (și nu numai).

Constante:

readonly x=12

(alternativ declare -r)

În bash o variabilă numerică este mereu int.

x=$((5/2)
echo $x # output 2
((x++)) # incrementare cu 1
((x+=5)) # incrementare cu 5

Bash nu știe, știe doar int. Pentru a lucra cu float, una din variante este utilizarea lui bc.

y=$((1/3)) # y=0
y=$(echo 1/3 | bc-l) # y=0.33333333333333333333

În acest caz, y este tratat ca un șir, nu un float.

Quoting

Double quotes fac substituția variabilei, single quotes nu.

x="bla bla"
echo "$x" # bla bla
echo '$x" # $x

Sintaxa completă și corectă de utilizare a unei variabile este ${x} (deci folosind {}). Această sintaxă face diferența într-o situație de genul:

echo ${x}_bla #bla

unde echo $x_bla nu va returna nimic.

Variable expansion {}

echo {1,2,5} # 1 2 5
echo {1..5} # 1 2 3 4 5
echo {a..g} # a b c d e f g

De aici și varianta “elegantă” de cp sau mv, de ex:

cp src{,.dest} # cp src dest
mv unfisier{,.bak} # mv unfisier{ unfisier{.bak

Cam atât, mai departe scrie-n carte (man) sau pe net.


Text și cod preluate de pe Facebook.