Łączenie zmiennej łańcuchowej w pętli for w powłoce bash [zamknięte]

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
źródło
1
A jakie jest twoje pytanie
rzymek

Odpowiedzi:

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
źródło
1
Czy na pewno jest poprawne użycie sigil przed nazwą zmiennej po lewej stronie zadania? W każdym razie lepiej przejrzyj cały post, zaczynając od tego komentarza.
manatwork
Lepszy. :) Teraz komentarz. Następnie wykonanie i przechwycenie finddanych wyjściowych. Następnie zmienna tablicy w for„s inpunktu.
manatwork
1
Ostatnim punktem będzie zapewne, że lepiej jest nie stosować pętli: var="$(IFS=; echo "${names[*]}")". Więc jeśli nie chcesz uczyć właściciela pytania, poprawienie jego licznych błędów składniowych nie przyniesie większych korzyści.
manatwork
1
Zapomniałeś a $, linia dla pętli powinna brzmiećfor name in ${names[@]}
bcattle
6

Zmiana

$var = $var$name   

do

var=$var$name   
rzymek
źródło