微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash - 一个简单的问号 (?)

如何解决Bash - 一个简单的问号 (?)

我在玩一些 bash 功能,当我尝试回显一些输出时,我注意到

echo what about in some more complex example ?

结果

在一些更复杂的例子中怎么样 \

我知道用引号转义问号或整行可以解决问题,但我很好奇为什么会这样。

所以我的两个问题是:

  1. bash 中简单问号的含义是什么(例如,我知道“$?”特殊参数和正则表达式用法)?
  2. 我想这是一个 bash 环境变量或某个变量之王。如何检查变量?例如,可以使用 type 关键字检查命令,即 type cd

解决方法

在这种情况下,它作为 glob 模式起作用。如果当前工作目录中存在具有一个字符名称的文件,shell 会将一个不带引号的问号扩展为它们的名称。

$ echo ? \? '?' "?"
? ? ? ?
$ touch a b c
$ echo ? \? '?' "?"
a b c ? ? ?

类似地,?? 扩展为两个字符的文件名,??* 扩展为长度超过一个字符的文件名,??[ab] 扩展为以 a 结尾的三个字符的文件名 strong> 或 a b

有关详细信息,请参阅 Filename Expansion

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。