Wie verkette ich Zeichenfolgen in einem Bash-Skript?

21

Wie kann ich Zeichenfolgen und Variablen in einem Shell-Skript verketten?

stringOne = "foo"

stringTwo = "anythingButBar"

stringThree = "? und?"

Ich möchte "foo and anythingButBar" ausgeben

Moshe
quelle

Antworten:

29

Nichts Besonderes, Sie müssen sie nur Ihrer Erklärung hinzufügen.

beispielsweise:

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

Wenn Sie das wörtliche Wort "und" zwischen ihnen wollen:

[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
Zypher
quelle
4
Wenn ich einen Vorschlag machen könnte, ist Ihre Eingabeaufforderung laut und verdeckt Ihre Antwort (und ein Leerzeichen nach dem Dollarzeichen würde die Lesbarkeit verbessern). So etwas wie $ stringOne="foo"zum Beispiel. Außerdem sollte die Eingabeaufforderung nicht in einer Ausgabezeile (den Zeilen nach den Echos) angezeigt werden. Ansonsten +1.
Bis auf weiteres angehalten.
10
echo ${stringOne}and${stringTwo}wenn du keine Leerzeichen willst
max taldykin
Sie können auch tun stringThree=$stringOne" and "$stringTwo.
Armfoot
5

Wenn Sie stattdessen Folgendes hätten:

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

du könntest es tun:

$ printf "$stringThree\n" "$stringOne" "$stringTwo"
foo and anythingButBar
Mikel
quelle