文字列変数を3番目に連結する方法は?


36

bashで2つの文字列を連結する必要があるため、次のようにします。

string1=hello
string2=world

mystring=string1+string2

echo mystring 生産すべき

こんにちは世界


端末コマンドjoinもあなたのためにそれを行うことができます。
レオレオポルドヘルツ

回答:


38

変数を単純に連結します。

mystring="$string1$string2"

51

bash変数パラメーターを使用するか、識別子の一部として有効な文字をすぐに追加する場合を除き、{}を使用する必要はありません。また、パラメーターに特殊文字が含まれない限り、二重引用符を使用する必要はありません。

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
これは私が探していたものです[z = "$ xand $ y"#は機能しません..... z = "$ {x} and $ y"#は機能します、 "fooandbar"]。ありがとう。
騒々しい

18

変数をリテラル文字列と連結する必要がある場合:

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

echo $mystring 生成されます:

こんにちは任意の世界のテキスト


6
この${var}フォーマットはいつでも使用できますが、すぐに別の有効な変数名文字が続く場合にのみ必要$varです。たとえば$vararbitary、「vararbitary」という名前の変数を解釈しますが、${var}arbitary....おっと、私はちょうどハマーのアブスワーを見ました。
Peter.O

11

多くの変数を連結したい場合は、+=文字列を追加するためにも使用できます。これにより、読みやすさが向上します。

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

他の回答で述べたように、ここでは{}は必要ありませんが、個人的には常に構文エラーを避けるために使用しています。

+=配列に値を追加するためにも使用できますarray+=($b)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.