Bir bash betiğinde dizeleri nasıl birleştiririm?


21

Dizeleri ve değişkenleri bir kabuk betiğinde nasıl birleştirebilirim?

stringOne = "foo"

stringTwo = "anythingButBar"

stringThree = "? ve?"

"Foo ve anythingButBar" çıktısını almak istiyorum

Yanıtlar:


29

Özel bir şey yok, sadece beyanınıza eklemelisiniz.

Örneğin:

[Zypher@host01 monitor]$ stringOne="foo"
[Zypher@host01 monitor]$ stringTwo="anythingButBar"
[Zypher@host01 monitor]$ stringThree=$stringOne$stringTwo
[Zypher@host01 monitor]$ echo $stringThree 
fooanythingButBar

kelimenin tam anlamıyla 've' kelimesini görmek istiyorsanız:

[Zypher@host01 monitor]$ stringOne="foo"
[Zypher@host01 monitor]$ stringTwo="anythingButBar"
[Zypher@host01 monitor]$ stringThree="$stringOne and $stringTwo"
[Zypher@host01 monitor]$ echo $stringThree 
foo and anythingButBar

4
Bir öneride bulunabilirsem, isteminiz gürültülü olur ve cevabınızı gizler (ve dolar işaretinden sonra bir boşluk okunabilirliğe yardımcı olur). $ stringOne="foo"Örneğin gibi bir şey . Ayrıca, bilgi istemi bir çıktı satırında görünmemelidir (echos'tan sonraki satırlar). Aksi halde +1.
sonraki duyuruya kadar duraklatıldı.

10
echo ${stringOne}and${stringTwo}boşluk istemiyorsanız
max taldykin

Ayrıca yapabilirsin stringThree=$stringOne" and "$stringTwo.
Armfoot

5

Eğer onun yerine:

stringOne="foo"
stringTwo="anythingButBar"
stringThree="%s and %s"

yapabilirsin:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
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.