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
jagan
fonte
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
Ruban Savvy
fonte
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   
rzymek
fonte