Łą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

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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.