来打印它
我注意到当我尝试回声时,它会打印1。
我读到这是"通配符(单个角色)。表达。"(如我在网上阅读的文档中所写的标题为"高级弹刀施法指南:使用bash"的完整指南"。
$ echo ?
1
$ echo ? ? ?
1 1 1
$ echo ? 1 ?
1 1 1
$ ls shai?n
shai.txt
bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
-
?
如果不存在,将扩展到所有一个字符文件 -
*
如果没有EIXSTS
,将扩展到所有文件或本身
因此,只有这样的方法是,如果您在工作目录中有一个称为1
的单字符文件。例如
> mkdir emptydir && cd emptydir
> echo ?
?
> touch 1 && echo ?
1
还要注意,当评论指出,您可以通过执行echo "?"
或echo ?
您可能在当前工作目录中有一个名为'1'的文件。
# echo ?
?
# touch 1
# echo ?
1
带有bash的nullglob
选项,您可以抑制以字符串打印图案:
$ echo ?
?
$ shopt -s nullglob
$ echo ?
$ touch A
$ echo ?
A