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

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.