1

当我进入

$ echo $USER:

我明白了

robin:

这很好。但是当我输入时:

$ echo $USER:a

我明白了

/Users/robin/robin

那是

[MY_CURRENT_DIR]/[MY_USER_NAME]

这种行为对我来说似乎很奇怪。谁能告诉我如何调试这个?我已经检查了别名,但不是这样。

4

1 回答 1

2

:a被解释为参数上的修饰符,$USER将其视为文件名并通过在当前目录前面将其转换为绝对路径。这在手册页的修饰符小节中的历史扩展部分中进行了介绍 。zshexpn

您可以通过用花括号将变量名括起来来防止这种情况: ${USER}:a。一般来说,当变量名后面出现除空格或引号字符之外的其他内容时,这样做是个好主意。

于 2013-02-28T16:45:48.827 回答