it-swarm.it

come concatenare le variabili stringa in un terzo?

Devo concatenare due stringhe in bash, in modo che:

string1=hello
string2=world

mystring=string1+string2

echo mystring dovrebbe produrre

ciao mondo

39
michelemarcon

concatenare semplicemente le variabili:

mystring="$string1$string2"
40
SiegeX

Non è necessario utilizzare {} a meno che non si utilizzino i parametri della variabile bash o si aggiunga immediatamente un carattere che sarebbe valido come parte dell'identificatore. Inoltre, non è necessario utilizzare le virgolette doppie a meno che i parametri includano caratteri speciali.

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"
53
khamer

Nel caso in cui sia necessario concatenare le variabili con stringhe letterali:

string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"

echo $mystring produrrà:

qualche ciao testo del mondo arbitrario

19
phunehehe

Se vuoi concatenare molte variabili puoi anche usare += Per aggiungere le stringhe .. Ciò può aumentare la leggibilità ..

mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}

Come indicato da altre risposte, {} non è necessario qui, ma personalmente le uso sempre per evitare alcuni errori di sintassi.

+= Può anche essere usato per aggiungere valori alle matrici: array+=($b).

12
mariux