dize değişkenlerini üçüncüte birleştirmek nasıl?


Yanıtlar:


38

sadece değişkenleri birleştirin:

mystring="$string1$string2"

51

Bash değişken parametrelerini kullanmayacağınız veya tanımlayıcının bir parçası olarak geçerli olacak bir karakteri hemen ekleyemediğiniz sürece {} kullanmanıza gerek yoktur. Parametreler özel karakterler içermedikçe, çift tırnak kullanmanıza gerek yoktur.

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"

2
Aradığım şey [z = "$ xand $ y" # işe yaramazsa ..... z = "$ {x} ve $ y" # işe yaramaz, "fooandbar"]. Teşekkürler.
1917’de

18

Değişkenleri değişmez dizgelerle birleştirmeniz gerekirse:

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

echo $mystring üretecek:

bazı merhaba keyfi dünya metin


6
İstediğiniz ${var}zaman formatı kullanabilirsiniz , ancak hemen başka bir geçerli değişken ismi karakterinin hemen ardından gelmesi gerektiğinde ihtiyacınız olur $var... örneğin: $vararbitary"vararbitary" adlı bir değişkeni yorumlar, ancak kullanarak ${var}arbitary.... Üzgünüm, khamer'ın abswer'ini gördüm .. ama yorumu burada da bırakabilirim.
Peter.O

11

Eğer birçok değişkeni birleştirmek istiyorsanız, +=dizeleri eklemek için de kullanabilirsiniz . Bu okunabilirliği artırabilir.

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

Diğer cevapların belirttiği gibi, burada {} gerekli değildir, ancak bazı sözdizimi hatalarını önlemek için bunları kişisel olarak kullanırım.

+=Ayrıca diziler değerler eklemek için kullanılabilir: array+=($b).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.