Uscita del comando BASH sulla variabile

Bash Command Output Variable

Diversi tipi di comandi bash devono essere eseguiti dal terminale in base ai requisiti dell'utente. Quando l'utente esegue un comando dal terminale, mostra l'output se non esiste alcun errore, altrimenti mostra il messaggio di errore. A volte, l'output del comando deve essere archiviato in una variabile per un uso futuro. La funzione di sostituzione del comando shell di bash può essere utilizzata per questo scopo. Come è possibile memorizzare diversi tipi di comandi di shell nella variabile utilizzando questa funzione è mostrato in questo tutorial.

variabile= $(comando)
variabile= $(comando [opzione…]argomento1 argomenti2 ...)
variabile= $(/il percorso/a/comando)

O



variabile=``comando``
variabile=``comando [opzione…]argomento1 argomenti2 ...``
variabile=`/il percorso/a/comando``

*** Nota: non utilizzare alcuno spazio prima e dopo il segno di uguale quando si utilizzano i comandi precedenti.



Uscita comando singolo su una variabile

I comandi Bash possono essere usati senza alcuna opzione e argomento per quei comandi in cui queste parti sono facoltative. I due esempi seguenti mostrano gli usi della semplice sostituzione dei comandi.



Esempio 1:

bash ` data` comando viene utilizzato per mostrare la data e l'ora correnti. Il seguente script memorizzerà l'output di ` data` comando in $ data odierna variabile utilizzando la sostituzione del comando.

$data odierna= $(Data)
$buttato fuori 'Oggi è$current_date'

Produzione:



Esempio n. 2:

`pwd` comando mostra il percorso della directory di lavoro corrente. Il seguente script memorizza l'output di `pwd` comando nella variabile, $ current_dir e il valore di questa variabile viene stampato usando `eco` comando.

$directory_corrente=``pwd``
$buttato fuori 'La directory corrente è:$ current_dir'

Produzione:

Comando con opzione e argomento

L'opzione e l'argomento sono obbligatori per alcuni comandi bash. Gli esempi seguenti mostrano come è possibile memorizzare l'output del comando con opzione e argomento in una variabile.

Esempio n. 3:

Bash ` WC comando viene utilizzato per contare il numero totale di righe, parole e caratteri di qualsiasi file. Questo comando usa -c, -w e -l come opzione e nome file come argomento per generare l'output. Crea un file di testo chiamato frutti.txt con i seguenti dati per testare lo script successivo.
frutti.txt

frutti.txt
Mango
arancia
Banana
Uva
Guaiava
Mela

Esegui i seguenti comandi per contare e memorizzare il numero totale di parole nel frutti.txt file in una variabile, $count_parole e stampa il valore usando ` eco` comando.

$conta_parole=``WC -infrutti.txt``
$buttato fuori 'Le parole totali in fruit.txt sono$count_parole'

Produzione:

Esempio n. 4:

`tagliare` è un altro comando bash che utilizza l'opzione e l'argomento per generare l'output. Crea un file di testo chiamato weekday.txt con nomi di sette giorni della settimana per eseguire lo script successivo.

weekday.txt

lunedì
Martedì
mercoledì
giovedi
venerdì
il sabato
Domenica

Crea un file bash chiamato cmdsub1.sh con il seguente script. In questo copione, mentre loop viene utilizzato per leggere il contenuto di weekday.txt file riga per riga e leggi i primi tre caratteri di ogni riga usando ` tagliare` comando. Dopo il taglio, il valore della stringa viene memorizzato nella variabile $giorno . Successivamente, se l'istruzione viene utilizzata per verificare il valore di $giorno è ' Sole' o no. L'output stamperà ' La domenica è la festa 'quando se la condizione è vera altrimenti stamperà il valore di $giorno .

cmdsub1.sh

#!/bin/bash
nome del file='giorno della settimana.txt'
mentre leggerelinea;fare
giorno=``buttato fuori $line | tagliare -C 1-3``
Se [ $giorno=='Sole' ]
poi
buttato fuori 'La domenica è la festa'
altro
buttato fuori $giorno
essere
fatto<$nomefile

Esegui lo script.

$gattoweekday.txt
$bashcmdsub1.sh

Produzione:

Utilizzo della sostituzione dei comandi in loop

È possibile memorizzare l'output della sostituzione del comando in qualsiasi variabile di ciclo mostrata nel prossimo esempio.

Esempio n. 5:

Crea un file chiamato cmdsub2.sh con il seguente codice. Qui, ` ls -d * / Il comando ` viene utilizzato per recuperare l'elenco di tutte le directory dalla directory corrente. For loop viene utilizzato qui per leggere ogni directory dall'output e memorizzarla nella variabile $dirname che viene stampato in seguito.

cmdsub2.sh

#!/bin/bash
per cognome in$(ls -D * /)
fare
buttato fuori '$dirname'
fatto

Esegui lo script.

$bashcmdsub2.sh

Produzione:

Utilizzo di comandi annidati

Come è possibile utilizzare più comandi utilizzando pipe(|) è mostrato nell'esempio precedente. Ma puoi usare comandi nidificati nella sostituzione dei comandi in cui l'output del primo comando dipende dall'output del secondo comando e funziona in modo opposto al comando pipe(|).

Sintassi del comando nidificato:

dove=``comando1 ``comando``

Esempio n. 6:

Due comandi, ` buttato fuori ` e ` chi ` sono usati in questo esempio come comando annidato. Qui, ` chi ` verrà eseguito per primo il comando che stampa le informazioni dell'utente attualmente connesso. L'uscita del ` chi Il comando ` verrà eseguito da ` buttato fuori ` comando e l'output di ` buttato fuori ` memorizzerà nella variabile $ variabile . Qui, l'output di ` buttato fuori Il comando ` dipende dall'output di ` chi ` comando.

$dove=``buttato fuori``chi``
$buttato fuori $ variabile

Produzione:

Utilizzo del percorso dei comandi

Se si conosce il percorso del comando, è possibile eseguire il comando specificando il percorso del comando quando si utilizza la sostituzione del comando. L'esempio seguente mostra l'uso del percorso del comando.

Esempio n. 7:

`whoami` comando mostra il nome utente dell'utente attualmente connesso. Per impostazione predefinita, questo comando è memorizzato in / usr/ sono/ cartella. Esegui il seguente script per eseguire ` whoami` comando usando path e store nella variabile, $uscita, e stampa il valore di $uscita .

$produzione= $(/usr/sono/chi sono)
$buttato fuori $uscita

Produzione:

Utilizzo dell'argomento della riga di comando

È possibile utilizzare l'argomento della riga di comando con il comando come argomento nella sostituzione del comando.

Esempio n. 8:

Crea un file bash chiamato cmdsub3.sh con il seguente script. ` nome di base ` viene usato qui il comando per recuperare il nome del file dal 2nsargomento della riga di comando e memorizzato nella variabile, $nomefile . Conosciamo l'1nsargomento della riga di comando è il nome dello script in esecuzione che è indicato con $ 0.

#!/bin/bash
nome del file=``nome di base $ 1``
buttato fuori 'Il nome del file è$nomefile.'

Eseguire lo script con il seguente valore dell'argomento.

$bashcmdsub3.sh Desktop/temperatura/ciao.txt

Qui, il nome di base del percorso, Desktop/temp/ciao.txt è ' ciao.txt '. Quindi, il valore di $nomefile sarà ciao.txt .

Produzione:

Conclusione:

In questo tutorial sono mostrati vari usi delle sostituzioni di comando. Se è necessario lavorare con più comandi o comandi dipendenti e archiviare il risultato temporaneamente per eseguire altre attività in seguito, è possibile utilizzare questa funzione nello script per ottenere l'output.

Maggiori info nel video: