我有一个使用的存储库Travis CI
,并且在其中.travis.yml
有以下行:
script:
- vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
遗憾的是,这是行不通的,因为它被转换为一行并按以下方式执行:
vim -Nu <(cat <<-EOF set no compatible | filetype off | EOF ) -c 'Script' > /dev/null
这使得EOF
标记无法正常工作,因为EOF
需要将其放在一行中。一种替代方法是只使用常规引号,如下所示:
script:
- vim -Nu <(cat 'set nocompatible |
filetype off
) -c 'Script' > /dev/null
哪个可行,也很好,但是我觉得必须有一种方法可以在.travis.yml
。中插入换行符。我现在有替代方案,但将来可能没有。你是怎么做到的?
在YAML中,您可以通过使用""
引号和转义换行符(\n
)来在标量中指定换行符,或者,对于您的情况,可以使用文字样式块标量来指定换行符:
script:
- |
vim -Nu <(cat <<-EOF
set nocompatible |
filetype off
EOF
) -c 'Script' > /dev/null
这是一个标量,从带有|
(管道符号)的行开始,然后是保留了换行符的多行。
|
可以有修饰符:1
- 9
,当第一行以空格开头时使用;+
,-
以影响最终换行符的剥离(通常合为一体)。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句