Gestire gli Argomenti da Riga di Comando in Bash ($1, $2, $@)

Script Bash

Per rendere uno script riutilizzabile, spesso è necessario passargli dei parametri dall'esterno al momento dell'esecuzione. In Bash, questi parametri, chiamati argomenti posizionali, sono accessibili tramite una serie di variabili speciali.

Le Variabili Speciali

  • `$0`: Contiene il nome dello script stesso.
  • `$1`, `$2`, `$3`, ...: Contengono il primo, il secondo, il terzo argomento, e così via.
  • `$#`: Contiene il numero totale di argomenti passati allo script.
  • `$@` e `$*`: Contengono tutti gli argomenti come una singola stringa (con delle sottili differenze nel modo in cui gestiscono gli spazi).

Esempio: Uno Script che Saluta

File: `saluta.sh`

#!/bin/bash

# Controlliamo se è stato passato almeno un argomento
if [ $# -eq 0 ]; then
    echo "Errore: Devi passare un nome come argomento."
    exit 1 # Esce con un codice di errore
fi

NOME=$1 # Prendiamo il primo argomento

echo "Ciao, $NOME!"

Esecuzione:

$ ./saluta.sh
Errore: Devi passare un nome come argomento.

$ ./saluta.sh Mario
Ciao, Mario!

Questo script usa la logica condizionale per controllare il numero di argomenti (`$#`).

Iterare su Tutti gli Argomenti

Se vuoi processare tutti gli argomenti passati, puoi usare un ciclo `for` con la variabile speciale `$@`.

#!/bin/bash

echo "Hai passato $# argomenti."

for ARGOMENTO in "$@"; do
    echo "Argomento: $ARGOMENTO"
done

Esecuzione:

$ ./script.sh mela pera banana
Hai passato 3 argomenti.
Argomento: mela
Argomento: pera
Argomento: banana

L'uso degli argomenti posizionali è fondamentale per creare strumenti a riga di comando flessibili e potenti.

Hai bisogno di una soluzione su misura?

Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.

Richiedi una consulenza