Bash Com executar una ordre en una variable?

Bash How Execute Command Variable



Els scripts Bash es poden crear de diferents maneres i la majoria de nosaltres coneixem l’execució de les ordres simples dins d’un script Bash. Tot i això, aquestes ordres també es poden encapsular a les variables de Bash. Aquest procés es coneix com a substitució d'ordres i s'utilitza generalment per emmagatzemar la sortida d'una ordre en una variable de manera que no hagueu d'executar aquesta ordre de manera explícita una i altra vegada, sinó que podeu accedir a aquesta variable per obtenir la sortida d'aquesta ordre. quan tu vulguis. En aquest article, us mostrarem com es pot fer això.

Nota: Tots els escenaris que es mostren a continuació s’han dut a terme a Ubuntu 20.04. Tanmateix, funcionaran exactament de la mateixa manera amb qualsevol altre sabor de Linux.







Mètode per executar una ordre en una variable in Bash:

Per demostrar el mètode d'execució d'una ordre en una variable a Bash, us presentarem tres escenaris diferents que són els següents:



Execució de l'ordre echo emmagatzemada en una variable:

Aquest és l'escenari més senzill en què el nostre objectiu és executar l'ordre echo que s'emmagatzema en una variable. Per aconseguir-ho, haurà de seguir la sèrie de passos que s’esmenten a continuació:



Pas 1: crear un script Bash:

Heu de crear un script Bash a la carpeta Inici per al qual heu de fer clic a la icona del Gestor de fitxers, tal com es pot veure a la imatge següent:





Ara cerqueu qualsevol espai a la carpeta Inici i feu clic amb el botó dret a sobre per iniciar un menú. Seleccioneu l’opció Document nou d’aquest menú i, a continuació, trieu l’opció Document buit al menú subcascual. En fer-ho, es crearà un document nou a la carpeta Inici. Ara canvieu el nom d'aquest document recentment creat amb qualsevol nom que vulgueu seguit de l'extensió .sh. En el nostre cas, l’hem anomenat CommandVar.sh.



Per escriure un script Bash en aquest fitxer, feu doble clic sobre ell per obrir-lo i, a continuació, escriviu el script que es mostra a la imatge següent al fitxer Bash. Aquí, la primera línia de l'script, és a dir, #! / Bin / bash, mostra que aquest fitxer és de fet un fitxer Bash. A continuació, hem creat una variable anomenada test i li hem assignat el valor $ (echo Hi there!). Sempre que vulgueu emmagatzemar l'ordre en una variable, heu d'escriure aquesta ordre precedida d'un símbol $. En aquest cas, volíem emmagatzemar l'ordre echo a la variable de prova, de manera que simplement hem d'escriure l'ordre echo seguida d'un missatge aleatori i l'hem inclòs entre claudàtors rodons i hi hem col·locat un símbol $ davant. Ara, si volem executar aquesta ordre eco, haurem d’accedir a la variable de prova. Per tant, per verificar si l’ordre echo emmagatzemada a la variable de prova es pot executar o no amb èxit, hem imprès la sortida de la variable de prova al terminal fent ús d’una altra ordre echo. Després d’escriure aquest script, heu de desar el fitxer i tancar-lo.

Pas 2: executar l'script Bash a través del terminal:

Ara heu d'executar aquest script a través del terminal. Per tant, obriu el terminal a Ubuntu 20.04 i, a continuació, escriviu-hi l’ordre següent:

bashCommandVar.sh

Quan premeu la tecla Retorn per executar aquesta ordre, podreu veure la següent sortida al vostre terminal. Aquí, la part ressaltada de la sortida és la sortida de l'ordre echo emmagatzemada a la variable de prova.

Execució de l'ordre Seq emmagatzemada en una variable:

En aquest escenari, imprimirem una seqüència de nombres mitjançant l'ordre seq emmagatzemada en una variable. Per fer-ho, modificarem l'script Bash creat anteriorment seguint els passos següents:

Pas 1: modificació de l'script Bash creat anteriorment:

Obriu el fitxer Bash que heu creat amb el mètode anterior i escriviu-hi el següent script. Aquí hem creat una variable anomenada seqüència. El nostre objectiu és imprimir els números de l'1 al 10 mentre s'utilitza l'ordre seq. Per fer-ho, hem assignat el valor $ (seq 1 10) a la variable de seqüència. També podeu especificar qualsevol altre interval de números que vulgueu. El primer número després de l'ordre seq indica el límit inferior de la seqüència, mentre que el segon número fa referència al límit superior. Després d'escriure aquest script, deseu el fitxer i tanqueu-lo.

Pas 2: executar l'script modificat de Bash a través del terminal:

Ara executeu el vostre script Bash de la mateixa manera que s’explica més amunt i podreu veure la seqüència especificada al vostre terminal tal com es mostra a la imatge següent:

Execució de l'ordre 'pwd' emmagatzemada en una variable:

També podeu imprimir el directori de treball fent servir l'ordre pwd emmagatzemada en una variable. Per demostrar-ho, modificarem de nou l’escriptura Bash creada anteriorment seguint els passos que s’esmenten a continuació:

Pas 1: modificació de l'script Bash creat anteriorment:

Obriu el fitxer Bash que acabeu de modificar i, a continuació, escriviu-hi l'script que es mostra a la imatge següent. En aquest script, hem creat una variable anomenada working_directory i li hem assignat el valor $ (pwd). L'ordre pwd simplement emmagatzemarà la seva sortida, és a dir, el directori de treball actual a la variable working_directory. Per assegurar si l'ordre pwd s'ha executat correctament o no, hem imprès el valor de la variable working_directory al terminal mitjançant l'ordre echo. Ara deseu aquest fitxer i tanqueu-lo després d’escriure-hi l’escriptura Bash modificada.

Pas 2: executar l'script modificat de Bash a través del terminal:

Ara executeu aquest script Bash de la mateixa manera que s'ha explicat anteriorment. La sortida d’aquest script Bash us mostrarà el directori de treball actual. La part ressaltada de la sortida és, de fet, la sortida de l'ordre pwd.

Conclusió:

Aquest article dóna una molt bona idea de com podeu executar una ordre que s’emmagatzema dins d’una variable de Bash i que pot obtenir la mateixa sortida que hauríeu obtingut si executéssiu l’ordre independentment.