在macOS Shell中得到一个奇怪的$ 1 2 3输出

时间:2018-05-17 07:20:04

标签: macos shell

我输入了echo $ ?并获得了

$ 1 2 3

通常我应该得到一个$ ?,所以我打开了一个新的shell,键入echo $ ?并且我的输出是

$ ?

我尝试触发它,有时它是$ 1 2 3,有时是$ ?。它只发生在经典的shell中,在iTerm shell中它运行良好。我使用的是macOS High Sierra版本10.13.4。

为什么输出错误以及如何触发?

1 个答案:

答案 0 :(得分:3)

$本身没有特殊含义。

?一个字符通配符。 (相比之下,*是一个多字符通配符。)?将替换为当前工作目录中由单个字符组成的任何文件。当您看到1 2 3作为输出时,请执行ls,然后您会在目录中找到列为文件的文件。

$ echo ?
?
$ touch 1
$ echo ?
1
$ touch 2
$ echo ?
1 2
$ ls
1
2