Wie zu verwenden mehrzeiligen Befehl im script:' mit YAML?
Ich haben ein repository, verwendet Travis CI
, und in der .travis.yml
dort habe ich diese Zeile:
script:
- vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
Leider funktioniert das nicht, da dieses umgewandelt wird in eine einzige Zeile, und wird ausgeführt, wie diese:
vim -Nu <(cat <<-EOF set no compatible | filetype off | EOF ) -c 'Script' > /dev/null
Dies macht die EOF
tag nicht arbeiten, wie EOF
muss in einer einzigen Zeile.
Eine alternative wäre, nur normale Aussagen wie diese:
script:
- vim -Nu <(cat 'set nocompatible |
filetype off
) -c 'Script' > /dev/null
Welche funktioniert und in Ordnung ist, aber ich habe das Gefühl, es muss eine Möglichkeit zum einfügen von newlines in einem .travis.yml
. Ich habe eine alternative, aber ich kann nicht in die Zukunft. So wie tun Sie es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In YAML können Sie angeben, Zeilenumbrüche in eine Skalare mithilfe
""
quoting und escaping die Zeilenumbrüche (\n
), oder, und das ist natürlich für deinen Fall, durch die Verwendung eines literal style-Blocks Skalare:Dies ist eine Skalare beginnen mit einer Zeile mit einer
|
(pipe-symbol), gefolgt von mehreren Linien, für die die Zeilenumbrüche erhalten bleiben.|
kann es Modifikatoren:1
-9
, verwendet werden, wenn die erste Zeile beginnt mit Leerzeichen;+
,-
zu beeinflussen stripping von final Zeilenumbrüche werden (normalerweise brach in einem).Benutze ich solches format zu erreichen, genau den gewünschten Effekt