Zsh ${PWD:A}的含义是什么?
我正在阅读一些zsh脚本,发现这个语法Zsh ${PWD:A}的含义是什么?,zsh,Zsh,我正在阅读一些zsh脚本,发现这个语法${PWD:A}。我知道$PWD是什么,也知道bash变量替换语法(主要是由于)。尽管如此,我还没有找到任何文档解释zsh的${variable:flag}语法${PWD:A}返回$PWD的符号链接自由绝对路径。它通过以下方式做到这一点: 在当前目录前添加前缀 解析任何。和 如果系统具有realpath系统调用,则解析符号链接-现代系统会这样做 由于$PWD已经是当前目录的绝对路径,并且不包含。或元素(至少它确实不应该包含),${PWD:A}只需解析任何
${PWD:A}
。我知道$PWD是什么,也知道bash
变量替换语法(主要是由于)。尽管如此,我还没有找到任何文档解释zsh的${variable:flag}语法
${PWD:A}
返回$PWD
的符号链接自由绝对路径。它通过以下方式做到这一点:
- 在当前目录前添加前缀
- 解析任何
和。
- 如果系统具有
系统调用,则解析符号链接-现代系统会这样做李>realpath
$PWD
已经是当前目录的绝对路径,并且不包含。
或
元素(至少它确实不应该包含),${PWD:A}
只需解析任何符号链接
${name:flag}
语法允许对参数使用历史扩展修饰符
本节实际上对此进行了解释(另请参见man zshexpn
)。不幸的是,它只是文本中的一个句子,没有与其他扩展名一起列出:
除了以下操作之外,还可以应用历史扩展中的修饰符中描述的冒号修饰符:例如,${i:s/foo/bar/}
对参数$i
的扩展执行字符串替换
可以在小节中找到可用修饰符的列表。在A
的情况下:
a
将文件名转换为绝对路径:如有必要,在当前目录前添加前缀,并解析路径中使用的。
和
。请注意,即使文件或任何中间目录不存在,也会发生转换
A
作为a
,但也应尽可能解决符号链接的使用问题。请注意,。
的解析发生在符号链接解析之前。除非您的系统有realpath
系统调用(现代系统有),否则此调用相当于
正是我要找的。谢谢