Prezto文档包含以下用于设置符号链接的示例脚本:
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
我了解"${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N)
中的所有内容,直至(.N)
。 (.N)
在这里意味着什么?
奖金问题,什么是${rcfile:t}
?我知道它解析为rcfile
的名称,但我不知道:t
的用途。
答案 0 :(得分:4)
贝尔文件使用README.md (.N)
'^'
所有内容^README.md(.N)
^
符号是正则表达式,意思是某事物的开头。
${rcfile:t}
部分只允许剥离字符串的dir名称。
因此,循环将为 zpresto 目录的每个配置文件创建一个所需的符号链接。
答案 1 :(得分:0)
该glob(实际上是扩展的glob)^README.md(.N)
会扩展到所有文件 README.md 除外,或者返回空(空字符串)。
扩展:由setopt
行设置。 ^
需要(见下文)。
文件:(.N)
中的点代表文件(不是目录或链接)。
README.md除外: ^
。考虑一下正则表达式中括号内的^
。那不是不是是指以README.md开头的文件。
空:(.N)
中的 N 。它说如果扩展失败,则将返回一个空字符串。否则,如果${ZDOTDIR:-$HOME}"/.zprezto/runcoms/"
仅具有README.md
文件或根本没有文件,则该行将返回错误。