De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Julio Cezar Neves
Data de Publicação: 27 de setembro de 2021
Repare que muitas dessas Expansões de Parâmetros, têm função semelhante
a comandos tais como sed
, cut
, tr
, awk
, expr
, ... e
sempre que houver possibilidade de usá-las em substituição a esses comandos,
aconselho fortemente que o faça, pois são muito mais leves e velozes que
seus similares, porque atuam como variáveis e não como comandos.
Nessas Expansões de Parâmetros, o que chamamos de PADRAO
são cadeias formadas
com auxílio dos caracteres coringas usados na expansão de nomes de arquivos,
podendo inclusive serem os coringas das expansões estendidas (extglob).
Parâmetro | Para que serve |
---|---|
${VAR#PADRAO} |
Remove a menor ocorrência de PADRAO no início de VAR |
${VAR##PADRAO} |
Remove a maior ocorrência de PADRAO no início de VAR |
${VAR%PADRAO} |
Remove a menor ocorrência de PADRAO no fim de VAR |
${VAR%%PADRAO} |
Remove a maior ocorrência de PADRAO no fim de VAR |
${VAR/PADRAO/NOVO} |
Troca a primeira ocorrência de PADRAO por NOVO |
${VAR//PADRAO/NOVO} |
Troca todas as ocorrências de PADRAO por NOVO |
${VAR/PADRAO} |
Remove a primeira ocorrência de PADRAO (= ${VAR/PADR/} ) |
${VAR//PADRAO} |
Remove todas as ocorrências de PADRAO (= ${VAR//PADR/} ) |
Complementares às Expansões de Parâmetros para substituição de cadeias, porém nessas os cortes serão especificados por campos numéricos e não por padrões coringas.
Parâmetro | Para que serve |
---|---|
${VAR:TAM} |
Remove um pedaço de tamanho TAM do início de VAR |
${VAR:INT:TAM} |
Remove os INT caracteres do início de VAR e lista os TAM primeiros após a remoção |
${VAR:: TAM} |
Gera uma saída com os TAM primeiros caracteres |
${VAR:: -TAM} |
Remove os últimos TAM caracteres de VAR |
${VAR: -TAM} ${VAR:(-TAM)} |
Manda para a saída os TAM últimos caracteres de VAR |
${VAR:INT1:-INT2} |
Corta INT1 do início e INT2 do fim de VAR |
Essas expansões são úteis para saber o tamanho de cadeias ou a quantidade de elementos de vetores
Parâmetro | Para que serve |
---|---|
${#VAR} |
Devolve o tamanho de VAR |
${#VET[@]} |
Devolve a quantidade de elementos do vetor VET |
São as que servem para listar o conteúdo do endereço que está sendo apontado pela variável.
Parâmetro | Para que serve |
---|---|
${!VAR} |
Lista a variável cujo nome está dentro de VAR |
${!PREF*} ${!PREF@} |
Expande para a lista de nomes de variáveis que começam por PREF |
${!VET[@]} ${!VET[*]} |
Lista os índices do vetor VET , Muito útil para vetores associativos |
Essas Expansões de Parâmetros são formas simples e rápidas para mudar parra letras de caixa alta para caixa baixa e vice-versa.
Parâmetro | Para que serve |
---|---|
${VAR^} |
Passa o primeiro caractere para maiúscula |
${VAR^^} |
Passa todos os caracteres para maiúscula |
${VAR,} |
Passa o primeiro caractere para minúscula |
${VAR,,} |
Passa todos os caracteres para minúscula |
${VAR~} |
Inverte a caixa do primeiro caractere |
${VAR~~} |
Inverte a caixa de todos os caracteres |
As Expansões de Parâmetros a seguir podem ser usadas substituindo testes para verificar a existência de variáveis, atribuindo valores de acordo com a existência ou não delas e/ou seus dados.
Parâmetro | Para que serve |
---|---|
${VAR:-CAD} |
Se VAR não existe ou está vazia, manda a cadeia CAD para a saída |
${VAR-CAD} |
Se VAR não existe, manda a cadeia CAD para a saída |
${VAR:=CAD} |
Se VAR não existe ou está vazia, VAR recebe CAD |
${VAR=CAD} |
Se VAR não existe, VAR recebe CAD |
${VAR:+CAD} |
se VAR existe e "não" está vazia, manda CAD para a saída |
${VAR+CAD} |
Se VAR existe, manda CAD para a saída |
${VAR:?ERRO} |
Exibe a mensagem ERRO , se VAR não existe ou está vazia |
${VAR?ERRO} |
Exibe a mensagem ERRO , se VAR não existe |
Amanhã começaremos a destrinchá-las...
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários