web-dev-qa-db-ja.com

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

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

string1=hello
string2=world

mystring=string1+string2

echo mystring生成する必要があります

こんにちは世界

39
michelemarcon

単に変数を連結します:

mystring="$string1$string2"
40
SiegeX

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

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

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

echo $mystringは以下を生成します:

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

19
phunehehe

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

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

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

_+=_を使用して、配列に値を追加することもできます:array+=($b)

12
mariux