问题描述
我在玩一些 bash 功能,当我尝试回显一些输出时,我注意到
echo what about in some more complex example ?
结果
在一些更复杂的例子中怎么样 \
我知道用引号转义问号或整行可以解决问题,但我很好奇为什么会这样。
所以我的两个问题是:
- bash 中简单问号的含义是什么(例如,我知道“$?”特殊参数和正则表达式用法)?
- 我想这是一个 bash 环境变量或某个变量之王。如何检查变量?例如,可以使用 type 关键字检查命令,即
type cd
解决方法
在这种情况下,它作为 glob 模式起作用。如果当前工作目录中存在具有一个字符名称的文件,shell 会将一个不带引号的问号扩展为它们的名称。
$ echo ? \? '?' "?"
? ? ? ?
$ touch a b c
$ echo ? \? '?' "?"
a b c ? ? ?
类似地,??
扩展为两个字符的文件名,??*
扩展为长度超过一个字符的文件名,??[ab]
扩展为以 a 结尾的三个字符的文件名 strong> 或 a b 等
有关详细信息,请参阅 Filename Expansion。