Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Variable verketten mit Zeilenumbruch

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
tiny
Newbie
Newbie
Beiträge: 21
Registriert: 3. Sep 2020, 10:43

Variable verketten mit Zeilenumbruch

Beitrag von tiny »

Hi,

ich möchte zwei Variablen verketten, bei meinen bisherigen Versuchen werden die aber immer hintereinander gesetzt statt mit Zeilenumbruch. Angenommen ich habe folgendes

Code: Alles auswählen

a=$(wmctrl -l | grep Firefox)
b=$(wmctrl -l | grep Terminal)
und ich erhalte für $a

Code: Alles auswählen

0x04800003  0 tiny-pc Linux Forum - Neues Thema erstellen - Mozilla Firefox
und für $b

Code: Alles auswählen

0x04600003  0 tiny-pc Terminal - tiny@tiny-pc ~
0x046016e2  0 tiny-pc Terminal - tiny@tiny-pc ~
Ich habe zwei Möglichkeiten gefunden. Die eine ist so:

Code: Alles auswählen

c="${a} ${b}"
echo "$c"
Hier wird die 1. Zeile von $b direkt nach der einzigen Zeile von $a geschrieben. Ich kann hier einfache und doppelte Anführungszeichen setzen wie ich will, nie werden die 3 Zeilen in getrennten Zeilen ausgegeben. z. b. "'${a}' '${b}'" oder ""${a}" "${b}"" oder '"${a}" "${b}"'.

Die zweite Möglichkeit ist mit "+=":

Code: Alles auswählen

a=$(wmctrl -l | grep Firefox)
a+=$(wmctrl -l | grep Terminal)
echo "$a"
Hier werden alle 3 Zeilen direkt nacheinander geschrieben. Auch der quoten der ersten beiden Zeilen (a="$(wmctrl -l | grep Firefox)") bringt nichts.
abgdf
Guru
Guru
Beiträge: 3411
Registriert: 13. Apr 2004, 21:15

Re: Variable verketten mit Zeilenumbruch

Beitrag von abgdf »

Verstehe nicht genau, was Du meinst. Zeilenumbruch wäre "\n".

Dies hier (aus Deinen Beispielen) ist bei mir in drei Zeilen:

Code: Alles auswählen

#!/bin/bash
a="0x04800003  0 tiny-pc Linux Forum - Neues Thema erstellen - Mozilla Firefox"
b="0x04600003  0 tiny-pc Terminal - tiny@tiny-pc ~
0x046016e2  0 tiny-pc Terminal - tiny@tiny-pc ~"
c="${a} ${b}"
echo "$c"
Kann aber auch davon abhängen, wie die Umgebungsvariable für den Zeilenumbruch gesetzt ist. Das hatte neulich schonmal Gräfin Klara bemerkt, daß das viele Probleme dieser Art löst.
Hab' aber vergessen, wie das ging (ich nutze bash (immer noch) ungern).
josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5658
Registriert: 23. Sep 2008, 17:09

Re: Variable verketten mit Zeilenumbruch

Beitrag von josef-wien »

Code: Alles auswählen

echo -e "$a\n$b"

Code: Alles auswählen

printf "$a\n$b"
tiny
Newbie
Newbie
Beiträge: 21
Registriert: 3. Sep 2020, 10:43

Re: Variable verketten mit Zeilenumbruch

Beitrag von tiny »

Mit \n geht es.
Antworten