ecoa nomes e valores de todas as variáveis env que começam com "nlu_setting"

0

Estou procurando uma maneira de ecoar nomes e valores de todas as variáveis de env que começam com nlu_setting, portanto, a saída pode ser semelhante a:

nlu_setting_json=true
nlu_setting_global=0
nlu_setting_bar=foo

alguém sabe como fazer isso?

    
por Alexander Mills 04.08.2018 / 07:17

2 respostas

3
for var in "${!nlu_setting_@}"; do
    printf '%s=%s\n' "$var" "${!var}"
done

A expansão ${!nlu_setting_@} é uma expansão bash -specific que retorna uma lista de nomes de variáveis que correspondem a um prefixo específico. Aqui nós o usamos para todos os nomes que começam com a string nlu_setting_ . Fazemos um loop sobre esses nomes e geramos o nome junto com o valor dessa variável.

Obtemos o valor da variável usando a variável indireta ( ${!var} ).

    
por 04.08.2018 / 08:20
-1

Depois de olhar as respostas para essa pergunta, eu descobri isso:

   compgen -A variable | grep "nlu_setting_" | while read v; do
            echo "$v = ${!v}";
   done

parece funcionar. Nunca ouvi falar do comando compgen, mas se for bash universal incorporado, deve ser tudo de bom ..

    
por 04.08.2018 / 07:32