Nie musisz używać {}, chyba że zamierzasz użyć parametrów zmiennych bash lub natychmiast dołączyć znak, który byłby prawidłowy jako część identyfikatora. Nie musisz także używać podwójnych cudzysłowów, chyba że parametry będą zawierać znaki specjalne.
x=foo
y=bar
z=$x$y # $z is now "foobar"
z="$x$y"# $z is still "foobar"
z="$xand$y"# does not work
z="${x}and$y"# does work, "fooandbar"
z="$x and $y"# does work, "foo and bar"
Możesz użyć ${var}formatu w dowolnym momencie, ale potrzebujesz go tylko wtedy, gdy $varzaraz po nim $vararbitarypojawi się inny prawidłowy znak o zmiennej nazwie ... np .: zinterpretuje zmienną o nazwie „vararbitary”, ale możesz ją obejść, używając ${var}arbitary.... ups, właśnie widziałem abshmera Khamera .. ale równie dobrze mogę zostawić komentarz tutaj.
Peter.O
11
Jeśli chcesz połączyć wiele zmiennych, możesz także użyć +=do dodania ciągów .. Może to zwiększyć czytelność ..
join
może również zrobić to za Ciebie.Odpowiedzi:
po prostu połącz zmienne:
źródło
Nie musisz używać {}, chyba że zamierzasz użyć parametrów zmiennych bash lub natychmiast dołączyć znak, który byłby prawidłowy jako część identyfikatora. Nie musisz także używać podwójnych cudzysłowów, chyba że parametry będą zawierać znaki specjalne.
źródło
Jeśli potrzebujesz połączyć zmienne z literałami:
echo $mystring
będzie produkować:źródło
${var}
formatu w dowolnym momencie, ale potrzebujesz go tylko wtedy, gdy$var
zaraz po nim$vararbitary
pojawi się inny prawidłowy znak o zmiennej nazwie ... np .: zinterpretuje zmienną o nazwie „vararbitary”, ale możesz ją obejść, używając${var}arbitary
.... ups, właśnie widziałem abshmera Khamera .. ale równie dobrze mogę zostawić komentarz tutaj.Jeśli chcesz połączyć wiele zmiennych, możesz także użyć
+=
do dodania ciągów .. Może to zwiększyć czytelność ..Jak wspomniano w innych odpowiedziach, {} nie są tutaj potrzebne, ale osobiście zawsze używam ich, aby uniknąć błędów składniowych.
+=
mogą być również wykorzystywane do dołączania wartości do tablic:array+=($b)
.źródło