Jak połączyć łańcuchy w skrypcie bash?


21

Jak mogę połączyć łańcuchy i zmienne w skrypcie powłoki?

stringOne = "foo"

stringTwo = "everythingButBar"

stringThree = "? i?"

Chcę wypisać „foo i cokolwiekButBar”

Odpowiedzi:


29

Nic specjalnego, wystarczy dodać je do deklaracji.

na przykład:

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

jeśli chcesz dosłowne słowo „i” między nimi:

[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
Jeśli mogę coś zasugerować, twój monit jest głośny i przesłania twoją odpowiedź (a spacja po znaku dolara poprawiłaby czytelność). Coś w stylu $ stringOne="foo"na przykład. Ponadto monit nie powinien pojawiać się w linii wyjściowej (linii po echu). W przeciwnym razie +1.
Wstrzymano do odwołania.

10
echo ${stringOne}and${stringTwo}jeśli nie chcesz spacji
max taldykin

Możesz też zrobić stringThree=$stringOne" and "$stringTwo.
Armfoot

5

Jeśli zamiast tego miałeś:

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

mógłbyś:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.