GNU/Linux >> Linux Esercitazione >  >> Linux

Esercitazione sulle variabili Bash:6 esempi pratici di variabili globali e locali Bash

Questo articolo fa parte della nostra serie di tutorial bash in corso. Come qualsiasi altro linguaggio di programmazione, anche Bash fornisce variabili.

Le variabili Bash forniscono una memoria temporanea per le informazioni che saranno necessarie durante la vita del programma.

Sintassi:

VARNAME=VALUE

Nota: Non dovrebbe esserci spazio intorno al segno "=" nell'assegnazione della variabile. Quando si utilizza VAR=VALUE, la shell vede "=" come un simbolo e tratta il comando come un'assegnazione di variabile. Quando usi VAR =VALUE, la shell presume che VAR debba essere il nome di un comando e prova ad eseguirlo.

Shell non si preoccupa del tipo di variabili. Le variabili possono memorizzare stringhe, numeri interi o reali.

Esempio.1 Utilizzo dell'assegnazione di variabili Bash semplice

Lo script seguente crea una variabile chiamata LIST e assegna il valore “/var/opt/bin”. Per accedere alle variabili, anteponi al nome della variabile $, che ti darà il valore memorizzato in quella variabile.

$ cat sample.sh
#!/bin/bash
LIST="/var/opt/bin/"
ls -l $LIST

Esegui lo script sopra, che elencherà /var/opt/bin in formato lungo come mostrato di seguito.

$ ./sample.sh
total 8
drwxrwsr-x 2 bin  bin 4096 Jan 29 06:43 softwares
drwxr-sr-x 5 root bin 4096 Sep  2  2009 llist

Ambito della variabile Bash:locale e globale

In Bash, le variabili non devono essere dichiarate. Tuttavia, quando accedi alla variabile che non è stata utilizzata finora, non riceverai alcun messaggio di avviso o errore. Verrà invece visualizzato un valore vuoto.

Esempio 2. Valori vuoti nelle variabili bash

$ cat var1.sh
#!/bin/sh
echo "Variable value is: $VAR1"
VAR1="GEEKSTUFF"
echo "Variable value is: $VAR1"

$ ./var1.sh
Variable value is:
Variable value is: GEEKSTUFF

Come mostrato sopra, inizialmente la variabile avrà un valore vuoto, dopo l'assegnazione, puoi ottenere i tuoi valori. Il comando export viene utilizzato per esportare una variabile da una shell interattiva. export mostra l'effetto sull'ambito delle variabili.

Esempio 3. Variabili Bash senza esportazione

Assegna una variabile con un valore in una shell interattiva e prova ad accedere alla stessa nello script della tua shell.

$ VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Ora, esegui lo script sopra come mostrato di seguito.

$ ./var2.sh
VAR2=
VAR2=UNIX

Tuttavia otterrai un valore vuoto per la variabile VAR2. La shell memorizza la variabile VAR2 con LINUX solo nella shell corrente. Durante l'esecuzione di var2.sh, genera la shell ed esegue lo script. Quindi la variabile VAR2 non avrà il valore nella shell generata. È necessario esportare la variabile affinché venga ereditata da un altro programma, incluso uno script di shell, come mostrato di seguito.

Esempio 4. Esportazione di una variabile Bash

$ export VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Ora esegui lo script sopra.

$ ./var2.sh
VAR2=LINUX
VAR2=UNIX
$
$echo $VAR2
LINUX

Ora puoi notare che dopo l'esecuzione dello script di shell var2.sh, il valore di VAR2 è LINUX. Perché le variabili non verranno restituite alla tua shell interattiva, a meno che tu non esegua lo script nella shell corrente.

Dichiarazione di una variabile Bash

Usando l'istruzione dichiara in bash, possiamo limitare il valore assegnato alle variabili. Limita le proprietà delle variabili. L'opzione in un'istruzione dichiara viene utilizzata per determinare il tipo di una variabile.

Sintassi:

declare option variablename
  • dichiarare è una parola chiave
  • L'opzione
  • potrebbe essere:
    • -r variabile di sola lettura
    • -i variabile intera
    • -una variabile di matrice
    • -f per le funzioni
    • -x dichiara ed esporta ai comandi successivi tramite l'ambiente.

Esempio 5. Dichiarazione di una variabile Bash usando la dichiarazione

$ cat declar.sh
#!/bin/bash
declare -i intvar
intvar=123 # Assigning integer value.
echo $intvar
intvar=12.3 #Trying to store string type value to an integer variable
echo $intvar

declare -r rovar=281
rovar=212 # Trying to change the readonly variable.

Dall'esecuzione seguente, puoi notare il messaggio di errore quando assegni dati non validi a una variabile.

$ ./declar.sh
123
t.sh: line 6: 12.3: syntax error: invalid arithmetic operator (error token is ".3")
123
t.sh: line 11: rovar: readonly variable

Variabili Bash globali

Le variabili globali sono anche chiamate variabili d'ambiente, che saranno disponibili per tutte le shell. Il comando printenv viene utilizzato per visualizzare tutte le variabili d'ambiente.

$ printenv
SHELL=/bin/bash
HISTSIZE=1000
SSH_TTY=/dev/pts/1
HOME=/root
LOGNAME=root
CVS_RSH=ssh

Variabili Bash locali

Le variabili locali sono visibili solo all'interno del blocco di codice. local è una parola chiave che viene utilizzata per dichiarare le variabili locali. In una funzione, una variabile locale ha significato solo all'interno di quel blocco funzione.

Esempio 6. Variabili Bash globali e locali

$ cat localvar.sh
#!/bin/bash
pprint()
{
  local lvar="Local content"
  echo -e "Local variable value with in the function"
  echo $lvar
  gvar="Global content changed"
  echo -e "Global variable value with in the function"
  echo $gvar
}

gvar="Global content"
echo -e "Global variable value before calling function"
echo $gvar
echo -e "Local variable value before calling function"
echo $lvar
pprint
echo -e "Global variable value after calling function"
echo $gvar
echo -e "Local variable value after calling function"
echo $lvar

Esegui lo script sopra,

$ sh t.sh
Global variable value before calling function
Global content
Local variable value before calling function

Local variable value with in the function
Local content
Global variable value with in the function
Global content changed
Global variable value after calling function
Global content changed
Local variable value after calling function

Nell'output sopra, le variabili locali avranno solo un valore vuoto prima e dopo aver chiamato la funzione. Il suo scopo è solo con nella funzione. È scomparso dalla funzione, mentre la variabile globale ha il valore aggiornato anche dopo l'esecuzione della funzione.


Linux
  1. Bash For Loop Guida ed esempi

  2. Linux nice and renice Command Tutorial (7 esempi)

  3. C Tutorial di programmazione 4 - Variabili e memoria

  4. Tutorial Awk:Comprendi le variabili Awk con 3 esempi pratici

  5. Esercitazione sullo stato di uscita di Bash Shell con esempi pratici

Bash For Loop con esempi pratici

Differenza tra la definizione di variabili Bash con e senza esportazione

Bash Scripting:variabili spiegate con esempi

16 Esempi pratici e utili di Echo Command in Linux

Bash Scripting Introduzione Tutorial con 5 esempi pratici

Tutorial sulle funzioni di Bash Shell con 6 esempi pratici