logo

Variabili di Bash

Le variabili sono la parte essenziale della programmazione, o possiamo dire che sono lo spirito di un linguaggio di programmazione. Le variabili specificano la posizione di memoria tramite caratteri, numerici e alfanumerici. Vengono utilizzati per essere referenziati e manipolati in un programma per computer.

Quali sono le variabili?

Le variabili sono i contenitori che memorizzano dati o informazioni utili come valore al loro interno. Di seguito è riportata la sintassi di una variabile:

 Variable_name =value 

Una variabile è una forma combinata di due parole, ovvero variable + able, il che significa che il suo valore può essere modificato e può essere utilizzato più volte.

numero primo java

La variabile è nota come memoria temporanea per qualsiasi tipo di dati come numeri interi, float, caratteri, ecc. Un nome di variabile può includere alfabeti, cifre e carattere di sottolineatura e il suo nome può iniziare solo con lettere dell'alfabeto e trattini bassi.

Nota: non è possibile definire un nome di variabile che inizi con qualsiasi cifra.

Cosa sono le variabili Bash?

Non possiamo usare le variabili bash senza avere le informazioni corrette ( sintassi, tipi di dati, tipi, funzionamento ) a riguardo, quindi procediamo in questo breve tutorial per avere la panoramica appropriata delle variabili Bash.

Innanzitutto, conosci la sintassi.

Sintassi:

 Variable_name=value 

Regole impostate per definire le variabili Bash:

  1. Anteporre al nome della variabile il segno del dollaro ($) durante la lettura o la stampa di una variabile.
  2. Lascia fuori il simbolo del dollaro ($) mentre imposti una variabile con qualsiasi valore.
  3. Il nome di una variabile può essere alfanumerico oppure può essere scritto con un carattere di sottolineatura (_).
  4. Il nome di una variabile fa distinzione tra maiuscole e minuscole: x e X sono considerate due variabili diverse.
  5. il nome della variabile può essere scritto in lettere MAIUSCOLE o MINUSCOLE o in una combinazione di entrambe, a seconda delle esigenze.
  6. Una variabile può essere posizionata ovunque in uno script Bash o sulla riga di comando, perché in fase di esecuzione Bash la sostituirà con il valore assegnato. È diventato possibile perché è stata eseguita la sostituzione prima di eseguire il comando.
  7. Non dovrebbero esserci spazi bianchi su entrambi i lati del segno uguale (=) tra il nome della variabile e il suo valore. Di seguito sono riportati alcuni esempi di Variabili non valide con spazi bianchi (indicati da punti ...) tra di loro come indicato di seguito:
    var1=...variabile1
    var2...=variabile2
    var3...=...variabile3
  8. Non è necessario utilizzare virgolette, singole o doppie, per definire una variabile con valore a carattere singolo come var1=variabile . Per inserire più parole o stringhe come un singolo elemento in una variabile, utilizza le virgolette per racchiudere il contenuto in quella variabile.
    • La virgoletta singola ('') aiuta a trattare ogni carattere.
    • Le doppie virgolette ('') aiutano a fare la sostituzione.

Tipi di dati

Nei linguaggi di programmazione formali, è necessario definire il tipo di dati di qualsiasi variabile al momento della dichiarazione della variabile. Per esempio:

 int year=2012 char comp_name='jtp' 

Ma nel caso di Bash, non è necessario definire il tipo di dati di alcuna variabile al momento della dichiarazione della variabile. Le variabili Bash lo sono non tipizzato , il che significa che basta digitare il nome della variabile assegnandone il valore e prenderà automaticamente in considerazione quel tipo di dati.

In modo tale che se assegni un valore numerico alla variabile, funzionerà come intero e se assegni un valore di carattere alla variabile, allora sarà String.

 year=2012 comp_name=jtp 

usando il comando echo, leggili assegnando il segno $ prima del loro nome come

eco $ anno
echo $nome

Tipi di variabili Bash

Esistono due tipi di variabili in una shell o in qualsiasi sistema UNIX.

  1. Variabili definite dal sistema
  2. Variabili definite dall'utente

1. Variabili definite dal sistema: Queste sono le variabili predefinite così come vengono create e gestite dallo stesso sistema operativo LINUX. La loro convenzione standard è che generalmente sono definiti in lettere maiuscole, cioè MAIUSCOLO. Quindi ogni volta che vedi una variabile definita in maiuscolo, molto probabilmente, si tratta di variabili definite dal sistema.

Queste sono le seguenti variabili definite dal sistema come indicato di seguito:

1. BASH rappresenta il nome della shell.

Esempio:

 BASH=/usr/bin/bash 

2. BASH_VERSIONE specifica la versione della shell conservata da Bash.

Esempio:

 BASH_VERSION=4.2.46(2) 

3. COLONNE specificare il n. di colonne per il nostro schermo.

Esempio:

 COLUMNS=80 

4. CASA specifica la directory home dell'utente.

Esempio:

 HOME=/home/jatpoint 

5. NOME LOG specifica il nome utente di registrazione.

Esempio:

 LOGNAME=javatpoint 

6. OSTIPO indica il tipo di sistema operativo.

Esempio:

 OSTYPE=linux-gnu 

7. PWD rappresenta la directory di lavoro corrente.

Esempio:

 PWD=/home/javatpoint 

8. NOME UTENTE specifica il nome dell'utente attualmente connesso.

Esempio:

 USERNAME=javatpoint 

Per conoscere l'elenco di queste variabili nel tuo sistema, digita i comandi impostare, avv , E printenv sul terminale della riga di comando come segue:

1. Digitando il impostato comando.

Produzione:

Variabili di Bash

2. Digitando il ambiente comando

Produzione:

Variabili di Bash

3. Digitando il comando printenv

Produzione:

Variabili di Bash

Chiamiamo queste variabili tramite Bash Shell. Di seguito sono riportati i passaggi indicati:

Passo 1: Crea uno script denominato Bash_sdvar e digita il seguente codice sulla console Bash come segue:

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS 

Passo 2. Guarda la console Bash indicata di seguito:

Variabili di Bash

Passaggio 3. Salva ed esegui lo script. Mostrerà l'output come puoi vedere nella figura riportata di seguito.

Produzione:

Variabili di Bash

2. Variabili definite dall'utente: Queste variabili vengono create e gestite dall'utente. Generalmente, questi tipi di variabili sono definiti in LOWER_CASES. Non esiste una regola rigida per scrivere queste variabili in minuscolo. Possiamo scriverli anche in maiuscolo.

Creiamo uno script Bash per definire queste variabili. Seguire i passaggi indicati di seguito:

Passo 1. Crea uno script denominato da bash_yard e digita il seguente codice su Bash Console:

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.' 

Passo 2. Vedi il codice su Bash Console.

Variabili di Bash

Passaggio 3. Salva ed esegui lo script.

Produzione:

Variabili di Bash

Funzionamento delle variabili Bash

Dopo aver avuto una dimostrazione di base delle variabili, passiamo a sapere come funzionano?

Ci sono due azioni che solitamente eseguiamo per una variabile in Bash, come indicato di seguito:

  • impostando un valore per una variabile
  • leggendo il valore per questo.

Un valore di variabile può essere impostato in diversi modi, il più comune dei quali è impostare direttamente il valore. Per leggere una variabile, possiamo inserire il suo nome (prefissando il segno $) in un punto qualsiasi dello script.

Bash controlla innanzitutto tutti i nomi delle variabili come se fossero presenti nello script. Quindi interpreta ogni riga del nostro script. Dopo aver identificato ogni variabile, sostituisce il nome di una variabile con il valore assegnato. Dopotutto, interpreta/esegue quella riga di codice e continua questo processo per ogni riga codificata del nostro script.

NOTA: entrambi i tipi di variabili in Bash (di cui abbiamo discusso) funzionano sia sul terminale che sullo script Bash. Vediamo il loro funzionamento sul terminale e su Bash attraverso un semplice esempio:

Esempio: Chiama un nome utente tramite XYZ, la posizione in cui sta attualmente lavorando e la versione di Bash Shell che sta utilizzando per Bash Scripting.

1. Lavorare sul terminale

Variabili di Bash

2. Lavorare su Bash Shell

Vedi lo script nominato da Bash_Var indicato di seguito:

Variabili di Bash

Nel 3rdriga della sceneggiatura , abbiamo dichiarato una variabile NOME UTENTE per memorizzare il nome utente XYZ come il suo valore.

Nelle ultime due righe , abbiamo stampato il messaggio previsto utilizzando il file eco comando.

Ci sono due variabili e un comando in questo messaggio. Ognuno di essi è preceduto dal segno del dollaro ($) dove:

    NOME UTENTEè una variabile definita dall'utente per chiamare il nome utente,BASH_VERSIONEè una variabile definita dal sistema, che la shell chiama se stessa. Viene utilizzato per stampare la versione di Bash Shell,PWDil comando viene utilizzato per stampare la posizione corrente dell'utente.

Per una migliore comprensione, crea questo script seguendo il codice fornito:

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION. 

Mostrerà l'output come puoi vedere nella seguente immagine:

Produzione:

Variabili di Bash

Ci sono altri esempi per esercitarsi con le variabili sia sul terminale che su Bash Shell. Seguendo il insieme di regole (discusso prima) fare pratica sulle variabili come segue:

A. Utilizzando il terminale della riga di comando

1. Impostazione delle variabili

Variabili di Bash

2. Lettura e riferimento alle variabili

Variabili di Bash

3. Variabili non valide

Variabili di Bash

4. Combinazione di due variabili stringa

Variabili di Bash

5. Concatenazione di stringhe con variabili

Variabili di Bash

NOTA: non utilizzare virgolette singole per combinare due variabili e anche per concatenare stringhe con variabili. In modo tale che se concateni le stringhe racchiudendole tra virgolette singole, sarà un errore leggerle come puoi vedere nell'immagine fornita di seguito:

Variabili di Bash

B. Utilizzo dello script Bash:

Ne è un esempio combinando le variabili String.

Variabili di Bash

Produzione:

Variabili di Bash

Argomenti della riga di comando

Gli argomenti della riga di comando vengono utilizzati per rendere uno script più dinamico passando l'input al codice. Passiamo questi argomenti in fase di esecuzione dello script nella forma seguente:

 ./script_name arg1 arg2 arg3..... 

Non dovrebbe esserci spazio tra il nome dello script e tutti gli argomenti passati.

Come utilizzare gli argomenti della riga di comando?

In una shell Bash, vengono utilizzati con il riferimento ai seguenti parametri predefiniti o alle variabili speciali.

    $ 0specifica il nome dello script da richiamare.$ 1-$ 9memorizza i nomi dei primi 9 argomenti o può essere utilizzato come posizioni degli argomenti.$#specifica il numero totale (conteggio) di argomenti passati allo script.$*memorizza tutti gli argomenti della riga di comando unendoli insieme.$@memorizza l'elenco di argomenti come un array.$?specifica l'ID del processo dello script corrente.$$specifica lo stato di uscita dell'ultimo comando o del processo di esecuzione più recente.$!mostra l'ID dell'ultimo lavoro in background.

Di seguito sono riportati i due metodi che utilizziamo per passare gli argomenti della riga di comando:

Metodo 1: utilizzo del numero di posizione

È il primo modo per accedere agli argomenti utilizzando i parametri predefiniti (...). L'immagine sotto lo spiega:

Variabili di Bash

Produzione:

Variabili di Bash

Metodo 2: utilizzo dell'array.

È il secondo modo di passare gli argomenti come Array. Segui l'algoritmo fornito per applicare questo metodo.

Passo 1: Crea uno script Bash.

Passo 2: Dichiara qualsiasi nome di variabile e assegnane il valore come $a nella seguente forma:

 variable_name=('$@') 

Dove $@ è l'argomento predefinito che viene utilizzato per memorizzare gli argomenti (passiamo) come un array.

Passaggio 3: Visualizza gli argomenti definendo il loro indice di array nel seguente formato:

 ${variable_name[i]} 

Passaggio 4: Salva e chiudi lo script.

Passaggio 5: Esegui lo script passando gli argomenti.

Vedi il seguente programma:

Programma:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]} 

Sulla console Bash:

Variabili di Bash

Produzione:

Variabili di Bash

Sostituzione dei comandi

Secondo la documentazione ufficiale di Bash

'La sostituzione del comando consente all'output di un comando di sostituire il comando stesso. Bash esegue l'espansione eseguendo il comando in un ambiente subshell e sostituendo la sostituzione del comando con l'output standard del comando, con eventuali ritorni a capo finali eliminati. I ritorni a capo incorporati non vengono eliminati, ma potrebbero essere rimossi durante la suddivisione delle parole.'

La sostituzione dei comandi si riferisce a un'espansione che Bash esegue per noi. Prende l'output del comando Bash, lo memorizza in una variabile (generalmente) e lo visualizza con echo.

Sostituzione dei comandi offre flessibilità dei dati per quanto riguarda lo scripting e l'assegnazione delle variabili. È semplice e facile avere l'output della riga di comando singolo. Nel caso in cui l'output si estenda su poche righe, le nuove righe finali vengono rimosse e l'intero contenuto dell'output finisce su un'unica riga.

Vedi la sintassi per l'uso:

Sintassi

La forma classica di sostituzione dei comandi in una variabile o sostituzione di comandi utilizza le virgolette inverse (`...`), come indicato di seguito:

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command` 

Ora eseguiamo la sostituzione dei comandi racchiudendo i comandi tra parentesi quadre (preceduti dal segno del dollaro ($)). Dare un'occhiata:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command) 

Quindi, eseguiamo la sostituzione dei comandi con un esempio come da discussione.

In questo esempio, stiamo sostituendo il singolo comando ls in una variabile. Vedi il terminale.

Variabili di Bash

Linea 1: Senza la sostituzione dei comandi, l'output viene espanso su più righe.

Linea 2 e 3: Con la sostituzione del comando, l'output termina su una singola riga (spazio risparmiato rimuovendo le nuove righe finali).

Di seguito è riportato lo script Bash per testare la sostituzione del comando.

Programma:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult 

Vedi la console Bash:

Variabili di Bash

Produzione:

Variabili di Bash