GNU/Linux >> Linux Esercitazione >  >> Linux

Bash Beginner Series #2:Comprensione delle variabili nello scripting di Bash Shell

Il tempo cambia e anche le variabili!

Devi aver giocato un po' con le variabili se hai fatto qualsiasi tipo di programmazione.

Se non hai mai lavorato con le variabili prima, puoi considerarle come un contenitore che memorizza un'informazione che può variare nel tempo.

Le variabili sono sempre utili durante la scrittura di uno script bash e in questo tutorial imparerai come utilizzare le variabili nei tuoi script bash.

Utilizzo delle variabili negli script della shell bash

Nell'ultimo tutorial di questa serie, hai imparato a scrivere un programma Hello World in bash.

#! /bin/bash

echo 'Hello, World!'

Era una semplice sceneggiatura di Hello World. Rendiamolo un Hello World migliore.

Miglioriamo questo script utilizzando le variabili della shell in modo che accolga gli utenti con i loro nomi. Modifica il tuo script hello.sh e usa il comando read per ottenere input dall'utente:

#! /bin/bash

echo "What's your name, stranger?"

read name

echo "Hello, $name"

Ora, se esegui il tuo script hello.sh; ti chiederà il tuo nome e poi ti saluterà con il nome che gli fornirai:

[email protected]:~/scripts$ ./hello.sh 
What's your name, stranger?
Elliot
Hello, Elliot

Nell'esempio sopra, ho inserito Elliot come nome e poi lo script mi ​​ha salutato con "Hello, Elliot". È decisamente molto meglio di un generico programma "Hello, World". Non sei d'accordo?

Spiegazione passo passo dello script di shell sopra

Ora esaminiamo la sceneggiatura riga per riga qui per assicurarci di aver compreso tutto.

Per prima cosa ho incluso la riga shebang per affermare esplicitamente che useremo la shell bash per eseguire questo script.

#!/bin/bash

Successivamente, chiedo all'utente di inserire il suo nome:

echo "What's your name, stranger?"

Questo è solo un semplice comando echo per stampare una riga sul terminale; abbastanza autoesplicativo.

Ora ecco la linea in cui avviene tutta la magia:

read name

Qui, ho usato il comando read per trasferire il controllo dallo script in esecuzione all'utente, in modo che l'utente possa inserire un nome e quindi memorizzare qualsiasi utente immesso, nella variabile 'name'.

Infine, lo script saluta l'utente con il suo nome:

echo “Hello, $name”

Nota qui, devi far precedere il nome della variabile con un segno di dollaro per ottenere il valore memorizzato nel nome della variabile. Se ometti il ​​simbolo del dollaro, verrà visualizzato invece "Ciao, nome".

Questo simbolo del dollaro è noto come operatore di dereferenziazione negli script bash.

Interi, stringhe o caratteri? Come creare diversi tipi di dati variabili nella shell bash?

Giochiamo un po' di più con le variabili.

È possibile utilizzare il segno di uguale per creare e impostare il valore di una variabile. Ad esempio, la riga seguente creerà una variabile denominata età e ne imposterà il valore su 27.

age=27

Dopo aver creato la variabile età, puoi cambiarne il valore quanto vuoi.

age=3

Il comando sopra cambia il valore della variabile età da 27 a 3. Se solo i tempi possono tornare indietro, posso sentirti dire!

Le variabili possono contenere diversi tipi di dati; le variabili possono memorizzare numeri interi, stringhe e caratteri.

letter=’c’
color=’blue’
year=2020

Variabili costanti nella shell bash

Puoi anche creare una variabile costante, ovvero una variabile il cui valore non cambierà mai! Questo può essere fatto facendo precedere il nome della variabile con il readonly comando:

readonly PI=3.14159

Il comando precedente creerà una variabile PI costante e imposterà il suo valore di 3.14159. Ora, non puoi cambiare il valore della variabile costante, se provi riceverai un errore:

bash: PI: readonly variable

Come puoi vedere, puoi solo leggere il valore di una variabile costante, ma non puoi mai cambiarne il valore dopo che è stata creata.

Sostituzioni di comandi

La capacità di memorizzare l'output di un comando in una variabile è chiamata sostituzione di comando ed è di gran lunga una delle funzionalità più sorprendenti di bash.

Il comando date è un classico esempio per dimostrare la sostituzione dei comandi:

TODAY=$(date)

Il comando precedente memorizzerà l'output della data del comando nella variabile OGGI. Nota come è necessario racchiudere il comando data tra una coppia di parentesi e un simbolo del dollaro (a sinistra).

In alternativa, puoi anche racchiudere il comando tra un paio di virgolette:

TODAY=`date`

Il metodo delle virgolette indietro è il vecchio modo di sostituire i comandi, quindi ti consiglio vivamente di evitarlo e di attenerti all'approccio moderno:

variable=$(command)

Prima di andare, prova a trasformare lo script Hello World in uno script HelloWorld intelligente

Ora, dal momento che hai appena imparato a sostituire i comandi, avrebbe senso visitare lo script Hello World un'ultima volta per perfezionarlo!

L'ultima volta, hai chiesto all'utente di inserire il suo nome in modo che lo script lo saluti; questa volta non te lo chiederai, il tuo script lo sa già!

Usa il comando whoami insieme alla sostituzione del comando per salutare chiunque esegua lo script:

#! /bin/bash           

echo "Hello, $(whoami)"

Come puoi vedere, ti bastavano solo due righe! Ora esegui lo script:

./hello.sh

Funziona come un incantesimo!

Bene, questo ci porta alla fine di questo tutorial. Puoi mettere in pratica ciò che hai appena appreso risolvendo i problemi e fare riferimento alle loro soluzioni se rimani bloccato o hai bisogno di un suggerimento.

Bash Capitolo 2 Domande pratiche Problemi e loro soluzione per mettere in pratica ciò che hai appena appreso in questo capitolo Bash-Capitolo 2-Domande pratiche-Linux-Handbook.pdf29 KB

Spero che ti sia piaciuto lavorare con le variabili della shell tanto quanto me. Dai un'occhiata al prossimo capitolo di questa serie, dove discuto come puoi passare argomenti ai tuoi script di shell.


Linux
  1. Script Bash(I)

  2. Memorizzazione dell'output del comando nella variabile Shell?

  3. Funzioni nelle variabili Shell?

  4. Bash Beginner Series #9:Utilizzo delle funzioni in Bash

  5. Bash Beginner Series #8:Loop in Bash

Script Bash(II)

Scripting Bash(III)

Spiegazione del comando di esportazione in Linux

Bash Beginner Series n. 1:crea ed esegui il tuo primo script Bash Shell

Bash Beginner Series #5:Utilizzo di operatori aritmetici negli script Bash

Bash Beginner Series #6:Operazioni con le stringhe in Bash