Created
February 28, 2019 00:01
-
-
Save shellscriptx/de59058a277a68bfde4f660dca18e4f5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Lê arquivo. | |
conteudo=$(< arq1.yaml) | |
# variável. | |
var='[email protected]' | |
# Lê o contéudo enquanto houver variáveis. | |
# Ex: ${var1}, ${var2} ... | |
while [[ $conteudo =~ \$\{([a-zA-Z0-9_]+)\} ]]; do | |
# Substitui a variável casada pelo seu valor. | |
conteudo=${conteudo//$BASH_REMATCH/${!BASH_REMATCH[1]}} | |
done | |
# Grava o novo arquivo. | |
echo "$conteudo" > arq2.yaml |
Shaman , e se eu quero validar se a variável for vazia, se ela for vazia eu queria que não fizesse nada
Eu tentei usando um if [[ ! -z ${BASH_REMATCH} ]] antes da substituição
mas deu erro, ficava num loop infinito
Para verificar se o comprimento de uma variável é zero, é [ -z "$var" ]
ou [[ ! $var ]]
.
então, eu tenho o seguinte:
em algum momento um export aconteceu:
~$ export EMAIL=[email protected]
e eu tenho o arquivo file1.yaml ->
list:
- ${EMAIL}
- ${VAR_VAZIA}
Aí eu executo o var2val.sh
e o meu file2.yaml fica assim ->
list:
sendo que o esperado é que se a ${VAR_VAZIA} nao foi exportada/nao existe o file2.yaml continue assim ->
list:
- [email protected]
- ${VAR_VAZIA}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Like a charm