Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Conversão de Caso

Versões recentes de bater tem suporte para conversão de letras maiúsculas / minúsculas de strings. bater

tem quatro expansões de parâmetro e duas opções para o declarar comando para apoiá-lo.

Então, para que serve a conversão de caixa? Além do valor estético óbvio, ele tem um papel importante na programação. Vamos considerar o caso de uma consulta ao banco de dados. Imagine que um usuário inseriu uma string em um campo de entrada de dados que desejamos consultar em um banco de dados. É possível que o usuário insira o valor em letras maiúsculas ou minúsculas ou uma combinação de ambas. Certamente não queremos preencher nosso banco de dados com todas as permutações possíveis de grafias maiúsculas e minúsculas. O que fazer?

Uma abordagem comum para este problema é normalizar a entrada do usuário. Ou seja, converta-o


em um formulário padronizado antes de tentarmos a consulta ao banco de dados. Podemos fazer isso convertendo todos os caracteres da entrada do usuário em letras maiúsculas ou minúsculas e garantir que as entradas do banco de dados sejam normalizadas da mesma maneira.

O declarar comando pode ser usado para normalizar strings para maiúsculas ou minúsculas. Usando declarar, podemos forçar uma variável a sempre conter o formato desejado, não importa o que seja atribuído a ela:



#! / Bin / bash

# ul-declare: demonstra conversão de caso via declare declare -u upper

declarar -l inferior


se [[$ 1]]; então

superior = "$ 1" inferior = "$ 1" echo $ superior echo $ inferior

fi

#! / Bin / bash

# ul-declare: demonstra conversão de caso via declare declare -u upper

declarar -l inferior


se [[$ 1]]; então

superior = "$ 1" inferior = "$ 1" echo $ superior echo $ inferior

fi


No script acima, usamos declarar para criar duas variáveis, superior e diminuir. Atribuímos o valor do primeiro argumento da linha de comando (parâmetro posicional 1) a cada uma das variáveis ​​e depois as exibimos na tela:



[me @ linuxbox ~] $ ul-declarar aBc

abc

abc

[me @ linuxbox ~] $ ul-declarar aBc

abc

abc


Como podemos ver, o argumento da linha de comando ("aBc") foi normalizado.

Além de declarar, existem quatro expansões de parâmetro que realizam a conversão de maiúsculas / minúsculas:


Tabela 34-1: Expansões de parâmetro de conversão de caso


Resultado do formato

Resultado do formato

${parâmetro,,} Expanda o valor de parâmetro em todas as letras minúsculas.


imagem

${parâmetro,} Expanda o valor de parâmetro mudando apenas o primeiro

caractere em minúsculas.


imagem

${parâmetro^^} Expanda o valor de parâmetro em todas as letras maiúsculas.


imagem


imagem

${parâmetro^} Expanda o valor de parâmetro mudando apenas o primeiro

caractere para maiúsculas (maiúsculas).


imagem


Aqui está um script que demonstra essas expansões:



#! / Bin / bash

# ul-param: demonstra conversão de caso via expansão de parâmetro if [[$ 1]]; então

echo $ {1 ,,}

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

fi

#! / Bin / bash

# ul-param: demonstra conversão de caso via expansão de parâmetro if [[$ 1]]; então

echo $ {1 ,,}

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

fi


Aqui está o script em ação:



[me @ linuxbox ~] $ ul-param aBc

ab ab ab ab

Abc

[me @ linuxbox ~] $ ul-param aBc

ab ab ab ab

Abc


Novamente, processamos o primeiro argumento da linha de comando e produzimos as quatro variações suportadas pelas expansões de parâmetro. Embora este script use o primeiro parâmetro posicional, parâmetro pode ser qualquer string, variável ou expressão de string.


Top OS Cloud Computing na OnWorks: