Ich habe einen Job Jenkins mit einer Shell-Box ausführen. In der execute-Shell verwende ich bash anstelle von strich (sh). In der Ausführungs Shell I Strings haben, die, wie sie Escape-Sequenzen enthalten werden sollen interpretiert (in diesem Fall die neue Linie: \n
), so ist hier ein Beispiel ausführen Shell:Jenkins Shell String Zitat Ersatz
#!/bin/bash
set -x #echo on
git fetch
...
git commit -m "Merging $DEVELOPEMENTBRANCH into $INITIALBRANCH\n\nThis is an example second paragraph."
...
Mein Problem hier ist, dass die Script-Block wird von Jenkins in eine Weise ausgelegt/ersetzt, dass er sein Verhalten ändert, um genau zu sein es die Variablen ersetzt und ersetzt die doppelten Anführungszeichen mit einfachen Anführungszeichen so in der Konsole Ausgabe, die es wie folgt aussieht:
[4] $ /bin/bash /tmp/hudson7542128982632971668.sh
+ git fetch
...
+ git commit -m 'Merging my_feature into develop\n\nThis is an example second paragraph'
...
Aber Auf diese Weise wird der \n
Teil wegen der einfachen Anführungszeichen nicht interpretiert. Was ist der Trick hier? Ich möchte die Anführungszeichen beibehalten oder zumindest die \n
Sequenzen interpretieren.
Riska, können Sie es bitte mit "\" versuchen, $ DEVELOPEMENTBRANCH in $ INITIALBRANCH zu integrieren \ n \ nDies ist ein Beispiel für einen zweiten Absatz. \ ""? – Shubhangi
Es funktioniert nicht so, wie es wird: "" my_feature in Entwicklung integrieren \ n \ nDies ist ein Beispiel zweiter Absatz "'. Da die einzelnen Anführungszeichen außerhalb des Ergebnisses liegen, ist das Ergebnis das gleiche (mit einem zusätzlichen Doppelanführungszeichen um die Nachricht herum) –
Für das mehrzeilige 'git' commit msg haben Sie folgende Antworten aus http://stackoverflow.com/a/ ausprobiert 5064653/6128602? – luka5z