Concatenando variável de string dentro de um loop for no shell bash [fechado]


15
#!/bin/bash

names= find /home/devuser -name 'BI*'
echo $names

for name in {names[@]}
do    
 echo $name
 $var = $var$name   
done

echo $var

1
E qual é a sua pergunta?
rzymek

Respostas:


17
#!/bin/bash

names= find /home/devuser -name 'BI*'
echo $names

for name in {names[@]}
do    
 echo $name
 var=$var$name //$ should be removed which is prefixed before var. Blank space before and after equal sign should be removed to run this code.   
done

echo $var

1
Você tem certeza de que está correto ao usar sigil na frente do nome da variável no lado esquerdo de uma tarefa? De qualquer forma, é melhor revisar toda a postagem, começando com esse comentário.
manatwork

Melhor. :) Agora o comentário. Em seguida, executando e capturando finda saída. Em seguida, a variável de matriz na cláusula for's in.
manatwork

1
O último ponto será, provavelmente, que é melhor usar nenhum loop: var="$(IFS=; echo "${names[*]}")". Portanto, a menos que você deseje ensinar o proprietário da pergunta, não há muito benefício em corrigir seus múltiplos erros de sintaxe.
manatwork

1
Você esqueceu um $, o de linha de loop deve lerfor name in ${names[@]}
bcattle

5

mudança

$var = $var$name   

para

var=$var$name   
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.