我正在阅读一些zsh脚本,并找到了这个语法${PWD:A}。我知道$PWD是什么以及bash变量替换语法(主要归功于这个极好的教程)。尽管如此,我还没有找到任何解释zsh ${变量:标志}语法的文档。
发布于 2016-04-27 21:14:48
${PWD:A}返回$PWD的无符号绝对路径.它这样做的方式是:
..和.realpath系统调用-现代系统所做的。由于$PWD已经是当前目录的绝对路径,并且不包含..或.元素(至少不应该包含),${PWD:A}只需要解析任何符号链接。
${name:flag}语法允许对参数使用历史扩展修饰符。
实际上,在中的一节中对此进行了解释(也请参阅man zshexpn)。不幸的是,它只是文本中的一个句子,没有与其他${nameXXXXX}扩展一起列出:
除了以下操作之外,还可以应用历史扩展中的修饰符中描述的冒号修饰符:例如,
${i:s/foo/bar/}对参数$i的展开执行字符串替换。
可用修饰符的列表可以在在……下面小节中找到。在A的情况下
a将文件名转换为绝对路径:如果有必要,将当前目录放在前面,并解析路径中..和.的任何使用。请注意,即使文件或任何中间目录都不存在,也会发生转换。A作为a,还可以尽可能解决符号链接的使用问题。注意,..的解析发生在解析符号链接之前。这个调用相当于一个,除非您的系统有realpath系统调用(现代系统这样做)。
https://stackoverflow.com/questions/36889968
复制相似问题