我们面临一个问题,在其中一个config-file.yml
中需要配置路径。这是通向CLI脚本的一条路。对于UNIX/Windows-/
- \
,我们面临一个已知的老问题“目录分隔符”。现在,我们只想为两个开放源码软件配置一条路径。
目前,我们需要手动切换路径,这取决于当前使用的操作系统。这破坏了我们的VCS处理/应用程序的稳定性。
Unix
bin_path: path/to/script
视窗
bin_path: path\to\script
是否有类似于PHP超全局 DIRECTORY_SEPARATOR
已知的占位符?我们将重点放在不需要替换脚本中的分隔符的解决方案上。在使用yaml文件时,我曾多次遇到这个问题。
发布于 2017-03-09 10:06:57
YAML是一种数据描述语言,因此不支持从外部流入YAML文档的数据(即可以在文档中使用的变量)。理论上,您可以做的唯一一件事是构造YAML文档,使您能够在以后选择实际想要的值。示例:
bin_path:
unix: path/to/script
windows: path\to\script
然后,在加载文件时,可以为当前操作系统选择适当的路径。但是,与在Windows上使用/
替换\
的方法相比,这似乎是很复杂的。
另一种解决方案是只使用为Windows或UNIX配置的一条路径,如下例所示。这样,您就不需要为每个操作系统配置特定的路径。
bin_path: path/to/script
例如,在PHP中,您可以使用真实路径来规范应用程序内部的传递。
realpath('path/to/script'); //creates an absolute path including OS based directory separators
https://stackoverflow.com/questions/42690862
复制相似问题