Variabile de bază în Bash

Introducere în Bash Scripting

Alex Scriven

Data Scientist

Atribuirea variabilelor

Similar altor limbaje, variabilele se atribuie cu operatorul egal.

var1="Moon"

Referința se face cu notația $.

echo $var1
Moon
Introducere în Bash Scripting

Atribuirea variabilelor de tip șir

Denumiți variabila după preferință (ceva logic!):

firstname='Cynthia'
lastname='Liu'

echo "Hi there" $firstname $lastname
Hi there Cynthia Liu

Ambele variabile au fost returnate!

Introducere în Bash Scripting

Absența notației $

Fără notația $ - nu este o variabilă!

firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Introducere în Bash Scripting

Atribuire incorectă a variabilelor

Bash este strict în privința spațiilor la crearea variabilelor. Atenție la spații!

var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Introducere în Bash Scripting

Ghilimele simple, duble și backtick-uri

În Bash, ghilimelele diferite au semnificații diferite, atât la crearea variabilelor, cât și la afișare.

  • Ghilimele simple ('sometext') = shell-ul interpretează conținutul literal
  • Ghilimele duble ("sometext") = shell-ul interpretează literal, cu excepția $ și backtick-urilor

Ultima metodă creează un „shell în interiorul altui shell", descris mai jos. Util pentru apelarea programelor din linia de comandă. Se realizează cu backtick-uri.

  • Backtick-uri (`sometext`) = shell-ul execută comanda și capturează STDOUT într-o variabilă
Introducere în Bash Scripting

Metode diferite de creare a variabilelor

Să vedem efectul diferitelor metode de creare a variabilelor

now_var='NOW'

now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Introducere în Bash Scripting

Programul date

Programul Date este util pentru a demonstra backtick-urile

Ieșirea normală a acestui program:

date
Mon  2 Dec 2019 14:07:10 AEDT
Introducere în Bash Scripting

Shell în interiorul altui shell

Să utilizăm acum shell-ul în interiorul altui shell:

rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.

Programul date a fost apelat, ieșirea capturată și inclusă în linia comenzii echo.

Am folosit un shell în interiorul altui shell!

Introducere în Bash Scripting

Paranteze vs. backtick-uri

Există un echivalent al notației cu backtick:

rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.

Ambele funcționează identic, însă backtick-urile sunt mai vechi. Parantezele sunt preferate în aplicațiile moderne. (A se vedea http://mywiki.wooledge.org/BashFAQ/082)

Introducere în Bash Scripting

Să exersăm!

Introducere în Bash Scripting

Preparing Video For Download...