在 appveyor.yml 回显行中添加引号
Adding quotes to an appveyor.yml echo line
我有这一行向我的构建添加了一些版本信息:
install:
- 'echo "export const VERSION = Git Hash: %APPVEYOR_REPO_COMMIT%" > version.js'
显然这不是有效的 JS,因为缺少引号。谁能帮我把这个字符串写入我的 version.js
文件:
export const VERSION = 'Git Hash: some_hash'
我确实尝试了一些转义和非转义引号的变体,但构建时间有点令人痛苦。
您引用该序列元素是在浪费单引号的使用。你不能有一个普通的标量(因为中间的冒号+space),但通常使用文字块样式标量要好得多。以下等同于您的 YAML:
install:
- |-
echo "export const VERSION = Git Hash: %APPVEYOR_REPO_COMMIT%" > version.js
因此您可以对 echo 参数使用单引号,但其中仍然有双引号:
install:
- |-
echo 'export const VERSION = "Git Hash: %APPVEYOR_REPO_COMMIT%"' > version.js
(需要|
后的-
去掉最后的换行符)
或者,假设 Appveyor 使用相对标准的 echo,您可以使用它的 -e
选项:
-e enable interpretation of backslash escapes
在这种情况下,您不需要使用文字块样式标量来获得可读性较差的内容:
install:
- 'echo -e "export const VERSION = \"Git Hash: %APPVEYOR_REPO_COMMIT%"" > version.js'
请注意,根据官方 YAML 常见问题解答,只要有可能,YAML 文件的正确扩展名就是 .yaml
。您可以使用 Custom configuration .yml [sic!] file name
告诉 Appveyor 不要默认使用 .yml
扩展名。对于我的 YAML 解析器,我还将其设置为隐藏文件:.appveyor.yaml
我有这一行向我的构建添加了一些版本信息:
install:
- 'echo "export const VERSION = Git Hash: %APPVEYOR_REPO_COMMIT%" > version.js'
显然这不是有效的 JS,因为缺少引号。谁能帮我把这个字符串写入我的 version.js
文件:
export const VERSION = 'Git Hash: some_hash'
我确实尝试了一些转义和非转义引号的变体,但构建时间有点令人痛苦。
您引用该序列元素是在浪费单引号的使用。你不能有一个普通的标量(因为中间的冒号+space),但通常使用文字块样式标量要好得多。以下等同于您的 YAML:
install:
- |-
echo "export const VERSION = Git Hash: %APPVEYOR_REPO_COMMIT%" > version.js
因此您可以对 echo 参数使用单引号,但其中仍然有双引号:
install:
- |-
echo 'export const VERSION = "Git Hash: %APPVEYOR_REPO_COMMIT%"' > version.js
(需要|
后的-
去掉最后的换行符)
或者,假设 Appveyor 使用相对标准的 echo,您可以使用它的 -e
选项:
-e enable interpretation of backslash escapes
在这种情况下,您不需要使用文字块样式标量来获得可读性较差的内容:
install:
- 'echo -e "export const VERSION = \"Git Hash: %APPVEYOR_REPO_COMMIT%"" > version.js'
请注意,根据官方 YAML 常见问题解答,只要有可能,YAML 文件的正确扩展名就是 .yaml
。您可以使用 Custom configuration .yml [sic!] file name
告诉 Appveyor 不要默认使用 .yml
扩展名。对于我的 YAML 解析器,我还将其设置为隐藏文件:.appveyor.yaml