这可能在 zsh 手册中,很抱歉我偷懒并在这里询问。 zsh 中的 :t 似乎有一些特别之处,如以下示例所示。
% x=foo
% echo $x:bar
foo:bar
% echo $x:toad
foooad
的行为$x:bar
是预期的行为,但:t
似乎退格了。有人可以引导我到手册中讨论此问题的相应部分吗?谢谢!
答案1
答案2
这是一个修饰符——variable:modifier
允许在变量扩展时对其进行修改。对于您的情况,为了使其更加明显:
echo ${x:t}bar
删除 中的所有前导路径名组件x
。 (尝试设置x=/usr/bin/foo
!)
老实说,我尝试训练自己绝不在字符串中使用“raw” $variable
——出现并发症的风险太高(x=foo; xy=bar
,echo $xyz
……);这样做可以echo ${x}:toad
消除您的 shell 比您想要的更智能的任何风险。