Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Conversione dei casi

Versioni recenti di bash supportano la conversione maiuscola/minuscola delle stringhe. bash

ha quattro espansioni di parametri e due opzioni per dichiarare comando per supportarlo.

A cosa serve quindi la conversione tra maiuscole e minuscole? Oltre all'ovvio valore estetico, ha un ruolo importante nella programmazione. Consideriamo il caso di una ricerca in un database. Immaginiamo che un utente abbia inserito una stringa in un campo di input dati che vogliamo ricercare in un database. È possibile che l'utente inserisca il valore in maiuscolo, in minuscolo o in una combinazione di entrambi. Di certo non vogliamo popolare il nostro database con ogni possibile permutazione di maiuscole e minuscole. Cosa fare?

Un approccio comune a questo problema è quello di normalizzare l'input dell'utente. Cioè, convertirlo


in una forma standardizzata prima di tentare la ricerca nel database. Possiamo farlo convertendo tutti i caratteri nell'input dell'utente in minuscolo o maiuscolo e assicurandoci che le voci del database siano normalizzate allo stesso modo.

. dichiarare Il comando può essere utilizzato per normalizzare le stringhe in maiuscolo o minuscolo. Utilizzando dichiarare, possiamo forzare una variabile a contenere sempre il formato desiderato, indipendentemente da cosa le venga assegnato:



#! / Bin / bash

# ul-declare: dimostra la conversione tra maiuscole e minuscole tramite declare declare -u upper

dichiara -l inferiore


se [[ $1 ]]; allora

superiore="$1" inferiore="$1" echo $superiore echo $inferiore

fi

#! / Bin / bash

# ul-declare: dimostra la conversione tra maiuscole e minuscole tramite declare declare -u upper

dichiara -l inferiore


se [[ $1 ]]; allora

superiore="$1" inferiore="$1" echo $superiore echo $inferiore

fi


Nello script sopra, usiamo dichiarare per creare due variabili, superiore e abbassarlaAssegniamo il valore del primo argomento della riga di comando (parametro posizionale 1) a ciascuna delle variabili e poi le visualizziamo sullo schermo:



[io@linuxbox~]$ ul-dichiarare aBc

ABC

abc

[io@linuxbox~]$ ul-dichiarare aBc

ABC

abc


Come possiamo vedere, l'argomento della riga di comando ("aBc") è stato normalizzato.

Oltre dichiarare, ci sono quattro espansioni di parametri che eseguono la conversione maiuscolo/minuscolo:


Tabella 34-1: Espansioni dei parametri di conversione dei casi


Formato Risultato

Formato Risultato

${parametro,,} Espandi il valore di parametro in minuscolo.


Immagine

${parametro,} Espandi il valore di parametro cambiando solo il primo

carattere in minuscolo.


Immagine

${parametro^^} Espandi il valore di parametro in tutte le lettere maiuscole.


Immagine


Immagine

${parametro^} Espandi il valore di parametro cambiando solo il primo

carattere in maiuscolo (capitalizzazione).


Immagine


Ecco uno script che dimostra queste espansioni:



#! / Bin / bash

# ul-param: dimostra la conversione dei casi tramite l'espansione dei parametri se [[ $1 ]]; quindi

eco ${1,,}

echo ${1,} echo ${1^^} echo ${1^}

fi

#! / Bin / bash

# ul-param: dimostra la conversione dei casi tramite l'espansione dei parametri se [[ $1 ]]; quindi

eco ${1,,}

echo ${1,} echo ${1^^} echo ${1^}

fi


Ecco lo script in azione:



[io@linuxbox~]$ ul-param aBc

abc aBc ABC

ABC

[io@linuxbox~]$ ul-param aBc

abc aBc ABC

ABC


Di nuovo, elaboriamo il primo argomento della riga di comando e produciamo le quattro varianti supportate dalle espansioni dei parametri. Mentre questo script utilizza il primo parametro posizionale, parametro può essere qualsiasi stringa, variabile o espressione stringa.


Il miglior sistema operativo cloud computing su OnWorks: