Concatenare la variabile stringa all'interno di un ciclo for nella shell bash [chiuso]


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 è la tua domanda?
rzymek,

Risposte:


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
Sei sicuro che sia corretto usare il sigillo davanti al nome della variabile sul lato sinistro di un compito? Ad ogni modo, meglio rivedere l'intero post, a partire da quel commento.
arte

Meglio. :) Ora il commento. Quindi eseguendo e acquisendo findl'output. Quindi la variabile array nella clausola for's in.
arte

1
L'ultimo punto sarà probabilmente che è meglio usare alcun loop: var="$(IFS=; echo "${names[*]}")". Quindi, a meno che tu non voglia insegnare al proprietario della domanda, non c'è molto beneficio nel correggere i suoi molteplici errori di sintassi.
arte

1
Hai dimenticato a $, la riga del ciclo for dovrebbe leggerefor name in ${names[@]}
bcattle

5

Modificare

$var = $var$name   

per

var=$var$name   
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.