Concaténation d'une variable de chaîne à l'intérieur d'une boucle for dans le shell bash [fermé]

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
la source
1
Et quelle est ta question?
rzymek

Réponses:

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
la source
1
Êtes-vous sûr d'utiliser correctement sigil devant le nom de variable sur le côté gauche d'une affectation? Quoi qu'il en soit, il vaut mieux revoir l'intégralité de votre message, en commençant par ce commentaire.
manatwork
Mieux. :) Maintenant, le commentaire. Puis exécuter et capturer findla sortie de. Ensuite, la variable de tableau dans la clause for's in.
manatwork
1
Le dernier point sera sans doute qu'il vaut mieux ne pas utiliser la boucle: var="$(IFS=; echo "${names[*]}")". Donc, à moins que vous ne souhaitiez enseigner au propriétaire de la question, il n'y a pas grand intérêt à corriger ses multiples erreurs de syntaxe.
manatwork
1
Vous avez oublié un $, la ligne de boucle for devrait se lirefor name in ${names[@]}
bcattle
6

Changement

$var = $var$name   

à

var=$var$name   
rzymek
la source