Entfernen Sie den nachfolgenden Zeilenumbruch von esyscmd in m4

8

Ich benutze m4, um einige grundlegende Makros zu erstellen, und mir ist klar, dass bei Verwendung von esyscmd eine nachgestellte neue Zeile zu einer Zeichenkette hinzugefügt wird, wenn der Befehl ausgeführt wird.

Beispiel:

%Vor%

Rendert:

%Vor%

(mit einer abschließenden neuen Zeile)

Durch Hinzufügen von dnl am Ende der Definition (oder esyscmd) scheint nichts zu passieren und es gibt immer noch eine abschließende neue Zeile.

Was ist der beste Weg, um den abschließenden Zeilenumbruch zu löschen, wenn Sie esyscmd in m4 aufrufen?

    
Dan 18.12.2013, 01:34
quelle

3 Antworten

3

* Nix-Systeme haben standardmäßig tr . Nutze das:

%Vor%

und du würdest den abschließenden Zeilenumbruch loswerden!

    
devnull 18.12.2013, 08:16
quelle
3

devnulls Beispiel ist gut, aber M4 hat auch einen eingebauten tr . Hier ist was ich mache:

%Vor%

Jemand, der mit M4 etwas besser ist, könnte das zu einem einzigen Makro verschärfen.

    
jdeseno 22.03.2014 16:29
quelle
1

Eine Alternative wäre

%Vor%

Keine Pfeife, aber Backticks, was immer Ihnen gefällt.

    
Wrikken 18.03.2014 11:13
quelle

Tags und Links