logo

Variabilele Bash

Variabilele sunt partea esențială a programării, sau putem spune că sunt spiritul unui limbaj de programare. Variabilele specifică locația memoriei prin caractere, numerice și alfanumerice. Ele sunt folosite pentru a fi referite și manipulate într-un program de calculator.

Care sunt variabilele?

Variabilele sunt containerele care stochează date sau o informație utilă ca valoare în interiorul lor. Mai jos este sintaxa pentru o variabilă:

 Variable_name =value 

O variabilă este o formă combinată de două cuvinte, adică variază + abil, ceea ce înseamnă că valoarea ei poate fi modificată și poate fi folosită de mai multe ori.

șir adăugare

Variabila este cunoscută ca stocarea temporară pentru orice tip de date, cum ar fi întreg, float, char etc. Un nume de variabilă poate include alfabete, cifre și liniuță de subliniere , iar numele său poate fi început doar cu litere alfabetice și subliniere.

Notă: Nu putem defini un nume de variabilă care începe cu orice cifră.

Ce sunt variabilele Bash?

Nu putem folosi variabile bash fără a avea informațiile adecvate ( sintaxă, tipuri de date, tipuri, lucru ) despre asta, deci, să parcurgem acest scurt tutorial pentru a avea o privire de ansamblu adecvată a variabilelor Bash.

La început, cunoașteți sintaxa.

Sintaxă:

 Variable_name=value 

Set de reguli pentru definirea variabilelor Bash:

  1. Prefixați numele variabilei cu semnul dolar ($) în timp ce citiți sau imprimați o variabilă.
  2. Opriți semnul dolarului ($) în timp ce setați o variabilă cu orice valoare.
  3. Numele unei variabile poate fi alfanumeric sau poate fi scris cu un caracter de subliniere (_).
  4. Un nume de variabilă ține cont de majuscule și minuscule: x și X sunt considerate două variabile diferite.
  5. numele variabilei poate fi scris fie cu litere UPPER_CASE sau LOWER_CASE sau un amestec al ambelor după cum doriți.
  6. O variabilă poate fi plasată oriunde într-un Script Bash sau pe linia de comandă, deoarece în timpul rulării, Bash o va înlocui cu valoarea atribuită. A devenit posibil datorită înlocuirii înainte de a rula comanda.
  7. Nu ar trebui să existe spații albe de ambele părți ale semnului egal (=) între numele variabilei și valoarea acesteia. Următoarele sunt câteva exemple de Variabile nevalide având spații albe (notate cu puncte ...) între ele, după cum se arată mai jos:
    var1=...variabila1
    var2...=variabila2
    var3...=...variabil3
  8. Nu este nevoie să folosiți ghilimele, fie simple, fie duble, pentru a defini o variabilă cu valoare de un singur caracter, cum ar fi var1=variabilă . Pentru a introduce mai multe cuvinte sau șir ca un singur element într-o variabilă, apoi folosiți ghilimele pentru a include conținutul în acea variabilă.
    • Ghilimele simple ('') ajută la tratarea fiecărui personaj.
    • Ghilimele duble ('') ajută la efectuarea înlocuirii.

Tipuri de date

În limbajele formale de programare, trebuie să definiți tipul de date al oricărei variabile în momentul declarării variabilei. De exemplu:

 int year=2012 char comp_name='jtp' 

Dar în cazul lui Bash, nu trebuie să definiți tipul de date al oricărei variabile în momentul declarării variabilei. Variabilele Bash sunt nedactilografiat , ceea ce înseamnă doar introduceți numele variabilei prin alocarea valorii acesteia și va lua în considerare automat acel tip de date.

Astfel încât, dacă atribuiți orice valoare numerică variabilei, aceasta va funcționa ca un întreg, iar dacă atribuiți o valoare de caracter variabilei, aceasta va fi String.

 year=2012 comp_name=jtp 

folosind comanda echo, citiți-le atribuind semnul $ înaintea numelui lor, cum ar fi

ecou $an
echo $nume

Tipuri de variabile Bash

Există două tipuri de variabile într-un shell sau orice sistem UNIX.

  1. Variabile definite de sistem
  2. Variabile definite de utilizator

1. Variabile definite de sistem: Acestea sunt variabilele predefinite, așa cum sunt create și întreținute de sistemul de operare LINUX însuși. Convenția lor standard este că, în general, acestea sunt definite cu majuscule, adică UPPER_CASE. Deci, ori de câte ori vedeți o variabilă definită în majuscule, cel mai probabil, acestea sunt variabilele definite de sistem.

Acestea sunt următoarele variabile definite de sistem, după cum sunt prezentate mai jos:

1. BASH reprezintă Numele Shell.

Exemplu:

 BASH=/usr/bin/bash 

2. BASH_VERSION specifică versiunea de shell pe care o deține Bash.

Exemplu:

 BASH_VERSION=4.2.46(2) 

3. COLONNE precizati nr. de coloane pentru ecranul nostru.

Exemplu:

 COLUMNS=80 

4. ACASĂ specifică directorul principal pentru utilizator.

Exemplu:

 HOME=/home/jatpoint 

5. NUME Jurnal specifică numele de utilizator de înregistrare.

Exemplu:

 LOGNAME=javatpoint 

6. OSTYPE spune tipul de sistem de operare.

Exemplu:

 OSTYPE=linux-gnu 

7. PWD reprezintă directorul de lucru curent.

Exemplu:

 PWD=/home/javatpoint 

8. NUME DE UTILIZATOR specifică numele utilizatorului conectat în prezent.

Exemplu:

 USERNAME=javatpoint 

Pentru a cunoaște lista acestor variabile din sistemul dvs., tastați comenzile set, înv , și printenv pe terminalul de linie de comandă, după cum urmează:

1. Tastând a stabilit comanda.

Ieșire:

Variabilele Bash

2. Tastând înv comanda

Ieșire:

Variabilele Bash

3. Tastând comanda printenv

Ieșire:

Variabilele Bash

Să numim aceste variabile prin Bash Shell. Următorii sunt pașii dați:

Pasul 1: Creați un script numit de Bash_sdvar și introduceți următorul cod pe Consola Bash, după cum urmează:

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS 

Pasul 2. Uitați-vă la Consola Bash prezentată mai jos:

Variabilele Bash

Pasul 3. Salvați și executați scriptul. Va afișa rezultatul, așa cum puteți vedea în figura de mai jos.

Ieșire:

Variabilele Bash

2. Variabile definite de utilizator: Aceste variabile sunt create și întreținute de utilizator. În general, aceste tipuri de variabile sunt definite în LOWER_CASES. Nu există nicio regulă strictă pentru a scrie aceste variabile cu litere mici. Le putem scrie și cu majuscule.

Să creăm un Script Bash pentru a defini aceste variabile. Urmați pașii indicați mai jos:

Pasul 1. Creați un script numit de bash_yard și tastați următorul cod pe Bash Console:

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.' 

Pasul 2. Vezi codul pe Consola Bash.

Variabilele Bash

Pasul 3. Salvați și executați Scriptul.

Ieșire:

Variabilele Bash

Funcționarea variabilelor Bash

După ce am avut o demonstrație de bază a variabilelor, să trecem să știm cum funcționează ele?

Există două acțiuni pe care le efectuăm de obicei pentru o variabilă în Bash, după cum este prezentat mai jos:

  • stabilirea unei valori pentru o variabilă
  • citind valoarea pentru aceasta.

O valoare variabilă poate fi setată în diferite moduri, în care cea mai comună modalitate este de a seta valoarea direct. Pentru a citi o variabilă, putem plasa numele acesteia (prefixând semnul $) oriunde în script.

Bash verifică mai întâi toate numele variabilelor ca și cum ar fi prezente în script. Apoi interpretează fiecare linie a scenariului nostru. După identificarea fiecărei variabile, înlocuiește numele unei variabile cu valoarea atribuită. La urma urmei, interpretează/rulează acea linie de cod și continuă acest proces pentru fiecare linie codificată a scriptului nostru.

NOTĂ: Ambele tipuri de variabile din Bash (am discutat) funcționează atât pe terminal, cât și pe scriptul Bash. Să vedem cum lucrează pe terminal și Bash printr-un exemplu simplu:

Exemplu: Apelați un nume de utilizator prin XYZ, locația lui în care lucrează în prezent și versiunea de Bash Shell pe care o folosește pentru Bash Scripting.

1. Lucrul la terminal

Variabilele Bash

2. Lucrul pe Bash Shell

Vedeți scriptul numit de Bash_Var prezentat mai jos:

Variabilele Bash

În 3rdlinia scenariului , am declarat o variabilă NUME DE UTILIZATOR pentru a stoca numele de utilizator XYZ ca valoare a acestuia.

În ultimele două rânduri , am tipărit mesajul dorit utilizând ecou comanda.

Există două variabile și o comandă în acest mesaj. Fiecare dintre ele este precedat de semnul dolar ($) unde:

    NUME DE UTILIZATOReste o variabilă definită de utilizator pentru a apela numele de utilizator,BASH_VERSIONeste o variabilă definită de sistem, pe care shell-ul se numește. Este folosit pentru a tipări versiunea Bash Shell,PWDcomanda este utilizată pentru a imprima locația curentă a utilizatorului.

Pentru o mai bună înțelegere, creați acest script urmând codul dat:

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION. 

Acesta va afișa rezultatul, așa cum puteți vedea în imaginea următoare:

Ieșire:

Variabilele Bash

Există câteva exemple suplimentare pentru exersarea variabilelor atât pe terminal, cât și pe Bash Shell. Urmărind set de reguli (discutat înainte) au o practică asupra variabilelor după cum urmează:

A. Utilizarea terminalului de linie de comandă

1. Setarea variabilelor

Variabilele Bash

2. Citirea și referirea variabilelor

Variabilele Bash

3. Variabile nevalide

Variabilele Bash

4. Combinarea a două variabile șir

Variabilele Bash

5. Concatenarea șirurilor de caractere cu variabile

Variabilele Bash

NOTĂ: Nu utilizați ghilimele simple pentru a combina două variabile și, de asemenea, pentru concatenarea șirurilor de caractere cu variabile. Astfel încât, dacă concatenați șiruri de caractere prin includerea lor între ghilimele simple, atunci va fi un eșec să le citiți, așa cum puteți vedea în imaginea de mai jos:

Variabilele Bash

B. Utilizarea scriptului Bash:

Este un exemplu de combinând variabilele String.

Variabilele Bash

Ieșire:

Variabilele Bash

Argumente de linie de comandă

Argumentele din linia de comandă sunt folosite pentru a face un script mai dinamic prin trecerea de intrare la cod. Trecem aceste argumente în timpul de execuție a scriptului sub forma următoare:

 ./script_name arg1 arg2 arg3..... 

Nu ar trebui să existe spațiu între numele scriptului și toate argumentele care trec.

Cum se folosesc argumentele liniei de comandă?

Într-un Bash Shell, ele sunt utilizate cu referința următorilor parametri impliciti sau a variabilelor speciale.

    0 USDspecifică numele scriptului care urmează să fie invocat.1 USD - 9 USDstochează numele primelor 9 argumente sau poate fi folosit ca poziții ale argumentelor.$#specifică numărul total (numărul) de argumente transmise scriptului.$*stochează toate argumentele liniei de comandă prin unirea lor.$@stochează lista de argumente ca un tablou.$?specifică ID-ul de proces al scriptului curent.$$specifică starea de ieșire a ultimei comenzi sau a celui mai recent proces de execuție.$!arată ID-ul ultimei lucrări de fundal.

Următoarele sunt cele două metode pe care le folosim pentru a transmite argumente în linia de comandă:

Metoda 1: Utilizarea numărului de poziție

Este prima modalitate de accesare a argumentelor folosind parametrii impliciti (...). Imaginea de mai jos o explică:

Variabilele Bash

Ieșire:

Variabilele Bash

Metoda 2: Utilizarea Array.

Este a doua modalitate de a transmite argumentele ca un Array. Urmați algoritmul dat pentru a aplica această metodă.

Pasul 1: Creați un script Bash.

Pasul 2: Declarați orice nume de variabilă și atribuiți-i valoarea ca $a în următoarea formă:

 variable_name=('$@') 

Unde $@ este argumentul implicit care este folosit pentru a stoca argumentele (le transmitem) ca o matrice.

Pasul 3: Afișați argumentele definindu-și indexul matricei în următoarea formă:

 ${variable_name[i]} 

Pasul 4: Salvați și închideți Scriptul.

Pasul 5: Executați Scriptul pasând argumentele.

Vezi următorul program:

Program:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]} 

Pe consola Bash:

Variabilele Bash

Ieșire:

Variabilele Bash

Înlocuirea comenzii

Conform documentației oficiale Bash

„Înlocuirea comenzii permite ca ieșirea unei comenzi să înlocuiască comanda în sine. Bash efectuează extinderea executând comanda într-un mediu subshell și înlocuind înlocuirea comenzii cu ieșirea standard a comenzii, cu toate liniile noi șterse. Liniile noi încorporate nu sunt șterse, dar pot fi eliminate în timpul împărțirii cuvintelor.'

Înlocuirea comenzii se referă la o expansiune pe care Bash o efectuează pentru noi. Preia ieșirea comenzii Bash, stochează într-o variabilă (în general) și afișează înapoi cu ecou.

Înlocuirea comenzii oferă flexibilitate de date în ceea ce privește scriptarea și atribuirea variabilelor. Este simplu și ușor pentru a avea o singură linie de comandă de ieșire. În cazul în care, ieșirea trece peste câteva linii, apoi noile linii de sfârșit sunt eliminate și întregul conținut al ieșirii se termină pe o singură linie.

Vezi sintaxa pentru utilizare:

Sintaxă

Forma clasică de înlocuire a comenzilor într-o variabilă sau substituție de comandă este utilizarea ghilimelelor (`...`), după cum este prezentat mai jos:

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command` 

Acum, înlocuim comenzile prin includerea comenzilor între paranteze (precedate de semnul dolar ($)). Uită-te:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command) 

Deci, să facem înlocuirea comenzii cu un exemplu conform discuției.

În acest exemplu, înlocuim o singură comandă ls într-o variabilă. Vezi terminalul.

Variabilele Bash

Linia 1: Fără înlocuirea comenzii, ieșirea este extinsă în mai multe linii.

Linia 2 și 3: Cu înlocuirea comenzii, ieșirea se termină pe o singură linie (spațiu economisit prin eliminarea noilor linii trase).

Urmează Scriptul Bash pentru a testa înlocuirea comenzii.

Program:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult 

Vedeți Consola Bash:

Variabilele Bash

Ieșire:

Variabilele Bash