Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Não conseguimos carregar os anúncios.Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
2. Re: Transformar Array em Variáveis
renato_pachecousa Debian
Post recolhido
Enviado em 19/01/2022 - 16:35h
Eu entendi q vc colocou o cifrão entre aspas simples e isso faz com q o bash interprete o cifrão como literal. remova-o das aspas simples (deixe sem) e teste novamente. Deixe assim:
"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh
5. Re: Transformar Array em Variáveis [RESOLVIDO]
msoliverusa Debian
Post recolhido
Enviado em 19/01/2022 - 17:29h
robertofgama escreveu:
Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Boa tarde,
Sinceramente, não entendi o motivo de "complicar o que é simples".....
Se você já tem as variáveis em: # Lista de programas
Somente atribua de forma correta:
#!/bin/bash
# Lista de programas
programa=("org.chromium.Chromium" "org.gnome.gitlab.somas.Apostrophe" "org.atheme.audacious" "org.audacityteam.Audacity");
flatpak install ${programa[@]}
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
6. Re: Transformar Array em Variáveis
robertofgamausa Manjaro Linux
Post recolhido
Enviado em 19/01/2022 - 17:32h
O caso é que este script é uma parte de um todo bem maior que exige esta "complicação". Porém pra não poluir o tópico achei por bem postar só o trecho com o problema.
msoliver escreveu:
robertofgama escreveu:
Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Boa tarde,
Sinceramente, não entendi o motivo de "complicar o que é simples".....
Se você já tem as variáveis em: # Lista de programas
Somente atribua de forma correta:
#!/bin/bash
# Lista de programas
programa=("org.chromium.Chromium" "org.gnome.gitlab.somas.Apostrophe" "org.atheme.audacious" "org.audacityteam.Audacity");
flatpak install ${programa[@]}
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh
9. Re: Transformar Array em Variáveis
msoliverusa Debian
Post recolhido
Enviado em 19/01/2022 - 17:56h
robertofgama escreveu:
O caso é que este script é uma parte de um todo bem maior que exige esta "complicação". Porém pra não poluir o tópico achei por bem postar só o trecho com o problema.
msoliver escreveu:
robertofgama escreveu:
Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Boa tarde,
Sinceramente, não entendi o motivo de "complicar o que é simples".....
Se você já tem as variáveis em: # Lista de programas
Somente atribua de forma correta:
#!/bin/bash
# Lista de programas
programa=("org.chromium.Chromium" "org.gnome.gitlab.somas.Apostrophe" "org.atheme.audacious" "org.audacityteam.Audacity");
flatpak install ${programa[@]}
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
Para atribuir o valor das MATRIZES: # Lista de programas
Na arrayFlatpak,
Utilize a Expansão de variáveis
arrayFlatpak=(${!programas_*});
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
10. Re: Transformar Array em Variáveis [RESOLVIDO]
robertofgamausa Manjaro Linux
Post recolhido
Enviado em 19/01/2022 - 18:23h
Tu se refere em fazer a substituição no comando final? Fiz desta forma e não funcionou também, como pode ver abaixo:
O caso é que este script é uma parte de um todo bem maior que exige esta "complicação". Porém pra não poluir o tópico achei por bem postar só o trecho com o problema.
msoliver escreveu:
robertofgama escreveu:
Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Boa tarde,
Sinceramente, não entendi o motivo de "complicar o que é simples".....
Se você já tem as variáveis em: # Lista de programas
Somente atribua de forma correta:
#!/bin/bash
# Lista de programas
programa=("org.chromium.Chromium" "org.gnome.gitlab.somas.Apostrophe" "org.atheme.audacious" "org.audacityteam.Audacity");
flatpak install ${programa[@]}
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
Para atribuir o valor das MATRIZES: # Lista de programas
Na arrayFlatpak,
Utilize a Expansão de variáveis
arrayFlatpak=(${!programas_*});
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
11. Re: Transformar Array em Variáveis
msoliverusa Debian
Post recolhido
Enviado em 19/01/2022 - 20:00h
robertofgama escreveu:
Tu se refere em fazer a substituição no comando final? Fiz desta forma e não funcionou também, como pode ver abaixo:
O caso é que este script é uma parte de um todo bem maior que exige esta "complicação". Porém pra não poluir o tópico achei por bem postar só o trecho com o problema.
msoliver escreveu:
robertofgama escreveu:
Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Boa tarde,
Sinceramente, não entendi o motivo de "complicar o que é simples".....
Se você já tem as variáveis em: # Lista de programas
Somente atribua de forma correta:
#!/bin/bash
# Lista de programas
programa=("org.chromium.Chromium" "org.gnome.gitlab.somas.Apostrophe" "org.atheme.audacious" "org.audacityteam.Audacity");
flatpak install ${programa[@]}
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
Para atribuir o valor das MATRIZES: # Lista de programas
Na arrayFlatpak,
Utilize a Expansão de variáveis
arrayFlatpak=(${!programas_*});
CORREÇÃO:
Com o comando:
arrayFlatpak=(${!programas_*});
São obtidos somente os nomes das variáveis.
Para resolver a variável, faça:
for app in ${!programas_*};do
echo "Var: ${app} Valor: ${!app}"
done
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
12. Re: Transformar Array em Variáveis [RESOLVIDO]
robertofgamausa Manjaro Linux
Post recolhido
Enviado em 20/01/2022 - 16:10h
Parece que a solução que apresentou resolveu parcialmente o problema, porém não consigo selecionar quais as variáveis presentes no no array. Para facilitar o entendimento deixa eu explicar os passo que o script quer chegar:
1) Armazenar os nomes corretos de cada flatpak em uma variável específica com o prefixo de programa_ sucedido por o NOME_DO_PROGRAMA (chrome, java, gimp e etc) e após o sufixo _inst_flatpak, conforme abaixo:
2) Armazenar quais os softwares que instalarei com um nome simples dentre os presentes nas variáveis do passo um em um array (chamado arrayProgramas), ou seja, em vez de eu armazenar a variável inteira como programas_chromium_inst_flatpak eu armazeno somente chromium
3) Pegar cada nome de dentro do array do passo 2 e formar a variável completa juntando com PREFIXO + PROGRAMA DO ARRAY + SUFIXO, armazenando em um novo array (chamado arrayFlatpak). Esta parte que uso o laço FOR
4) Montar o comando de instalação com o conteúdo das variáveis presentes no array arrayFlatpak criado no passo 3.
Dessa forma o resultado final do script em que o arrayProgramas contivesse as posições "chromium" "audacious" "audacity" seria:
Obs1: Anexo um desenho para ser mais compreensível.
Obs2: Ele precisa seguir este fluxo pois como disse antes faz parte de um programa um pouco maior em que essas variáveis são criadas com base em um yaml por isso tem essa estrutura.
msoliver escreveu:
robertofgama escreveu:
Tu se refere em fazer a substituição no comando final? Fiz desta forma e não funcionou também, como pode ver abaixo:
O caso é que este script é uma parte de um todo bem maior que exige esta "complicação". Porém pra não poluir o tópico achei por bem postar só o trecho com o problema.
msoliver escreveu:
robertofgama escreveu:
Olá pessoal, estou criando um script para a automação da instalação de alguns programas, conforme pode ser visto abaixo, porém o resultado final dele não consigo ler as variáveis presentes no array. Se alguém puder me dar uma dica do que estou fazendo errado ficaria grato.
# Lista de programas
programas_chromium_inst_flatpak=("org.chromium.Chromium")
programas_apostrophe_inst_flatpak=("org.gnome.gitlab.somas.Apostrophe")
programas_audacious_inst_flatpak=("org.atheme.audacious")
programas_audacity_inst_flatpak=("org.audacityteam.Audacity")
for i in "${!arrayProgramas[@]}"
do
posArray=$((${#arrayFlatpak[@]} +1 ))
arrayFlatpak[$posArray]='$'"programas_"${arrayProgramas[i]}"_inst_flatpak"
done
flatpak install ${arrayFlatpak[@]}
Resultado esperado do ultimo comando (flatpak install ${arrayFlatpak[@]}) seria:
Boa tarde,
Sinceramente, não entendi o motivo de "complicar o que é simples".....
Se você já tem as variáveis em: # Lista de programas
Somente atribua de forma correta:
#!/bin/bash
# Lista de programas
programa=("org.chromium.Chromium" "org.gnome.gitlab.somas.Apostrophe" "org.atheme.audacious" "org.audacityteam.Audacity");
flatpak install ${programa[@]}
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
Para atribuir o valor das MATRIZES: # Lista de programas
Na arrayFlatpak,
Utilize a Expansão de variáveis
arrayFlatpak=(${!programas_*});
CORREÇÃO:
Com o comando:
arrayFlatpak=(${!programas_*});
São obtidos somente os nomes das variáveis.
Para resolver a variável, faça:
for app in ${!programas_*};do
echo "Var: ${app} Valor: ${!app}"
done
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________