GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare le variabili negli script della shell

In ogni programmazione lingua variabili gioca un ruolo importante, nello scripting della shell di Linux utilizziamo due tipi di variabili:Variabili definite dal sistema &Variabili definite dall'utente .

Una variabile in uno script di shell è un mezzo per fare riferimento a un numero o valore del carattere . E a differenza dei linguaggi di programmazione formali, uno script di shell non richiede la dichiarazione di un tipo per le tue variabili

In questo articolo discuteremo delle variabili, dei loro tipi e di come impostare e utilizzare le variabili nello scripting della shell.

Variabili definite dal sistema:

Queste sono le variabili che vengono create e mantenute da Sistema operativo(Linux) stesso. Generalmente queste variabili sono definite in LETTERE MAIUSCOLE . Possiamo vedere queste variabili usando il comando “$ set “. Di seguito sono riportate alcune delle variabili definite dal sistema:

Per stampare il valore delle variabili sopra, usa il comando echo come mostrato di seguito:

# echo $HOME
# echo $USERNAME

Possiamo attingere a queste variabili di ambiente dall'interno dei tuoi script utilizzando il nome della variabile di ambiente preceduto dal simbolo del dollaro. Ciò è dimostrato nel seguente script:

$ gatto mioscript

#!/bin/bash
# visualizza le informazioni utente dal sistema.
echo “Informazioni utente per userid:$USER”
echo UID:$UID
echo HOME:$HOME

Nota che le variabili d'ambiente nei comandi echo vengono sostituiti dai loro valori correnti quando viene eseguito lo script. Nota anche che siamo riusciti a posizionare il $USER variabile di sistema tra virgolette doppie nella prima stringa e lo script della shell è stato ancora in grado di capire cosa intendessimo. C'è uno inconveniente all'utilizzo di questo metodo, tuttavia. Guarda cosa succede in questo esempio:

$ echo "Il costo dell'articolo è di $ 15"
Il costo dell'articolo è di 5

Ovviamente non è quello che si intendeva. Ogni volta che lo script vede un simbolo del dollaro tra virgolette, presume che tu faccia riferimento a una variabile. In questo esempio lo script ha tentato di visualizzare la variabile $1 (che non era definito) e poi il numero 5. Per visualizzare un vero simbolo del dollaro, devi precedere it con un carattere barra rovesciata:

$ echo "Il costo dell'articolo è di $ 15"
Il costo dell'articolo è di $ 15

Va meglio. La barra rovesciata ha consentito allo script della shell di interpretare il segno del dollaro come un vero e proprio simbolo del dollaro e non una variabile.

Variabili definite dall'utente:

Queste variabili sono definite da utenti . Uno script di shell ci consente di impostare e utilizzare le nostre variabili personali all'interno della sceneggiatura. L'impostazione delle variabili ti consente di memorizzare temporaneamente i dati e usalo in tutto lo script, rendendo lo script della shell più simile a un vero programma per computer.

Variabili utente può essere qualsiasi stringa di testo fino a 20 lettere , cifre o un carattere di sottolineatura . Le variabili utente fanno distinzione tra maiuscole e minuscole, quindi la variabile Var1 è diversa dalla variabile var1. Questa piccola regola spesso mette nei guai i programmatori di script inesperti.

I valori vengono assegnati alle variabili utente utilizzando un segno di uguale. Non possono apparire spazi tra la variabile, il segno di uguale e il valore (un altro punto problematico per i principianti). Di seguito sono riportati alcuni esempi di assegnazione di valori alle variabili utente:

var1=10
var2=-57
var3=testing
var4=“ancora altri test”

Lo script della shell determina automaticamente il tipo di dati utilizzato per il valore della variabile. Le variabili definite all'interno dello script di shell mantengono i loro valori per tutta la vita dello script di shell ma vengono eliminate al completamento dello script di shell.

Proprio come le variabili di sistema, le variabili utente possono essere referenziate usando il simbolo del dollaro:

$ cat test3
#!/bin/bash
# variabili di test
days=10
guest=”Katie”
echo “$guest ha effettuato il check-in $days days ago”
days=5
guest=”Jessica”
echo “$guest ha effettuato il check-in $days days ago”
$

L'esecuzione dello script produce il seguente output:
$ chmod u+x test3
$ ./test3
Katie ha effettuato il check-in 10 giorni fa
Jessica ha effettuato il check-in 5 giorni fa
$

Ogni volta che la variabile è referenziata , produce il valore attualmente assegnatogli. È importante ricordare che quando si fa riferimento a un valore variabile si utilizza il segno del dollaro , ma quando si fa riferimento alla variabile per assegnarle un valore, non si utilizza il simbolo del dollaro. Ecco un esempio di cosa intendo:

$ cat test4
#!/bin/bash
# assegnazione di un valore variabile a un'altra variabile
value1=10
value2 =$valore1
echo Il valore risultante è $valore2
$

Quando utilizzi il valore del valore1 variabile nell'istruzione di assegnazione, devi comunque utilizzare il simbolo del dollaro. Questo codice produce il seguente output:

$ chmod u+x test4
$ ./test4
Il valore risultante è 10
$

Se dimentichi il simbolo del dollaro e fai in modo che la riga di assegnazione value2 assomigli a:

value2=value1
ottieni il seguente output:
$ ./test4
Il valore risultante è value1
$

Senza il simbolo del dollaro, la shell interpreta il nome della variabile come una stringa di testo normale , che molto probabilmente non è quello che volevi.

Uso del simbolo Backtick (`) nelle variabili della shell:

Il backtick consente assegnare l'output di un comando della shell a una variabile. Anche se non sembra molto, è un elemento fondamentale in script  programmazione. Devi racchiudere l'intero comando della riga di comando con caratteri di backtick:

testing=`date`

La shell esegue il comando all'interno dei backtick e assegna l'output alla variabile testing. Ecco un esempio di creazione di una variabile utilizzando l'output di un normale comando della shell:

$ cat test5
#!/bin/bash
# usando il carattere backtick
testing=`date`
echo “ La data e l'ora sono:” $test
$

La variabile testing riceve l'output dal comando date e viene utilizzata nell'istruzione echo per visualizzarlo. L'esecuzione dello script di shell produce il seguente output:

$ chmod u+x test5
$ ./test5
La data e l'ora sono:lunedì 31 gennaio 20:23:25 EDT 2011

Nota :In bash puoi anche usare l'alternativa $(…) sintassi al posto di backtick (`),che ha il vantaggio di essere rientrante.

Esempio:$ echo "La data e l'ora di oggi sono:" $(data)
La data e l'ora di oggi sono:Sun Jul 27 16:26:56 IST 2014

Leggi anche 9 esempi di comandi "diff" in Linux


Linux
  1. Come rendere le variabili d'ambiente "esportate" in uno script di shell?

  2. Come confrontare le stringhe negli script di Bash Shell

  3. Come eseguire uno script di shell all'avvio

  4. Come usare le variabili atomiche in C?

  5. Come usare il comando su su adb shell?

Come utilizzare il comando Date negli script Bash in Linux

Come scrivere uno script di shell in Ubuntu

Come installare e utilizzare Nu Shell su Linux

Che cos'è Shebang negli script della shell di Linux?

Come utilizzare if-else negli script della shell?

Come eseguire un comando in uno script della shell?