为什么“回声 [0123456789]”返回“1”?

0 bash

你能帮我理解为什么会发生这种情况吗:

$ echo [023456789]
[023456789]

$ echo [0123456789]
1
Run Code Online (Sandbox Code Playgroud)

根据您的反馈,我希望我能弄清楚如何编写一个 bash 脚本,该脚本可以接受值为 [0123456789] 的参数并将该文字字符串分配给一个变量。

Jim*_* L. 5

您在当前目录中有一个名为“1”的文件。

echo [0123456789]
Run Code Online (Sandbox Code Playgroud)

是一个通配符命令,它告诉 bash 显示当前目录中名称由单个数字组成的任何文件的名称。如果不存在这样的文件,echo 将显示通配符规范本身。

注意:

$ mkdir /tmp/new-directory
$ cd /tmp/new-directory
$ echo [0123456789]
[0123456789]

$ touch 1 2 4 8
$ echo [0123456789]
1 2 4 8
Run Code Online (Sandbox Code Playgroud)

如果要按字面显示该字符串,而不是显示它匹配的文件名,请将字符串括在引号中:

$ echo "[0123456789]"
[0123456789]
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

48 次

最近记录:

4 年,7 月 前