Bash Cum se execută o comandă într-o variabilă?
On noiembrie 22, 2021 by adminScripturile Bash pot fi create într-o varietate de moduri diferite și cei mai mulți dintre noi sunt familiarizați cu executarea comenzilor simple din cadrul unui script Bash. Cu toate acestea, aceste comenzi pot fi, de asemenea, încapsulate în variabilele din Bash. Acest proces este cunoscut sub numele de substituție de comenzi și este utilizat în general pentru a stoca rezultatul unei comenzi într-o variabilă, astfel încât să nu fie nevoie să executați din nou și din nou în mod explicit comanda respectivă, ci mai degrabă să puteți accesa pur și simplu variabila respectivă pentru a obține rezultatul acelei comenzi ori de câte ori doriți. În acest articol, vă vom arăta cum se poate face acest lucru.
Nota: Toate scenariile demonstrate mai jos au fost realizate pe Ubuntu 20.04. Cu toate acestea, ele vor funcționa exact în același mod și cu orice altă aromă de Linux.
Metoda de executare a unei comenzi într-o variabilă în Bash:
Pentru demonstrarea metodei de executare a unei comenzi într-o variabilă în Bash, vă vom prezenta trei scenarii diferite care sunt următoarele:
Executarea comenzii „echo” stocată într-o variabilă:
Acest scenariu este cel mai simplu, în care scopul nostru este de a executa comanda echo care este stocată într-o variabilă. Pentru ca acest lucru să se întâmple, va trebui să urmați seria de pași menționați mai jos:
Pasul # 1: Crearea unui script Bash:
Trebuie să creați un Bash Script în folderul Home pentru care trebuie să faceți clic pe pictograma File Manager, așa cum puteți vedea în următoarea imagine:
Acum găsiți orice spațiu în folderul Home și faceți clic dreapta pe el pentru a lansa un meniu. Selectați opțiunea New Document (Document nou) din acest meniu și apoi alegeți opțiunea Empty Document (Document gol) din meniul subcascadă. Procedând astfel, veți crea un nou document în dosarul Home. Acum redenumiți acest document nou creat cu orice nume la alegere, urmat de extensia .sh. În cazul nostru, l-am numit CommandVar.sh.
Pentru a scrie un script Bash în acest fișier, faceți dublu clic pe el pentru a-l deschide și apoi tastați scriptul prezentat în imaginea de mai jos în fișierul Bash. Aici, prima linie a scriptului, și anume „#!/bin/bash”, arată că acest fișier este de fapt un fișier Bash. Apoi, am creat o variabilă numită „test” și i-am atribuit valoarea „$(echo „Hi there!”)”. Ori de câte ori doriți să stocați comanda într-o variabilă, trebuie să tastați comanda respectivă precedată de simbolul „$”. În acest caz, am vrut să stocăm comanda „echo” în variabila „test”, așa că am tastat pur și simplu comanda „echo” urmată de un mesaj aleatoriu și am închis-o între paranteze rotunde și am plasat un simbol „$” înaintea ei. Astfel, acum, dacă dorim să executăm această comandă „echo”, va trebui să accesăm variabila „test”. Prin urmare, pentru a verifica dacă comanda „echo” stocată în variabila „test” poate fi executată cu succes sau nu, am imprimat ieșirea din variabila „test” pe terminal prin utilizarea unei alte comenzi „echo”. După ce ați scris acest script, trebuie să salvați fișierul și să îl închideți.
Etapa # 2: Executarea scriptului Bash prin intermediul terminalului:
Acum trebuie să executați acest script prin intermediul terminalului. Deci, deschideți terminalul în Ubuntu 20.04 și apoi tastați următoarea comandă în el:
Când veți apăsa tasta Enter pentru a executa această comandă, veți putea vedea următoarea ieșire pe terminal. Aici, porțiunea evidențiată a ieșirii este ieșirea comenzii „echo” care a fost stocată în variabila „test”.
Executarea comenzii „seq” stocată într-o variabilă:
În acest scenariu, vom imprima o secvență de numere prin utilizarea comenzii „seq” stocată într-o variabilă. Pentru ca acest lucru să se întâmple, vom modifica scriptul Bash creat mai sus, efectuând următorii pași:
Pasul nr. 1: Modificarea scriptului Bash creat mai sus:
Deschideți fișierul Bash pe care l-ați creat în metoda de mai sus și introduceți în el următorul script. Aici, am creat o variabilă numită „sequence”. Scopul nostru este de a imprima numerele de la 1 la 10 în timp ce folosim comanda „seq”. Pentru a face acest lucru, am atribuit valoarea „$(seq 1 10)” la variabila „sequence”. De asemenea, dacă doriți, puteți specifica orice alt interval de numere la alegere. Primul număr de după comanda „seq” indică limita inferioară a secvenței, în timp ce al doilea număr se referă la limita superioară. După ce ați tastat acest script, salvați fișierul și închideți-l.
Pasul nr. 2: Executarea scriptului Bash modificat prin intermediul terminalului:
Executați acum scriptul Bash în același mod ca cel explicat mai sus și veți putea vedea secvența specificată pe terminalul dvs. așa cum se arată în imaginea de mai jos:
Executarea comenzii „pwd” stocată într-o variabilă:
Puteți, de asemenea, să imprimați directorul dvs. de lucru utilizând comanda „pwd” stocată într-o variabilă. Pentru a demonstra acest lucru, vom modifica încă o dată scriptul Bash creat mai sus, urmând pașii menționați mai jos:
Pasul nr. 1: Modificarea scriptului Bash creat mai sus:
Deschideți fișierul Bash pe care tocmai l-ați modificat și apoi tastați în el scriptul prezentat în imaginea următoare. În acest script, am creat o variabilă numită „working_directory” și i-am atribuit valoarea „$(pwd)”. Comanda „pwd” va stoca pur și simplu rezultatul său, adică directorul de lucru curent, în variabila „working_directory”. Pentru a ne asigura că comanda „pwd” a fost executată corect sau nu, am imprimat valoarea variabilei „working_directory” pe terminal folosind comanda „echo”. Acum salvați acest fișier și apoi închideți-l după ce ați tastat în el scriptul Bash modificat.
Pasul nr. 2: Executarea scriptului Bash modificat prin intermediul terminalului:
Acum executați acest script Bash în același mod ca cel explicat mai sus. Ieșirea acestui script Bash vă va arăta directorul de lucru curent. Porțiunea evidențiată a ieșirii este, de fapt, ieșirea comenzii „pwd”.
Concluzie:
Acest articol oferă o idee foarte bună despre cum puteți executa o comandă care este stocată într-o variabilă în Bash și puteți obține aceeași ieșire pe care ați fi obținut-o dacă ați fi executat comanda în mod independent.
Lasă un răspuns