echo 命令的模式匹配字符功能

要使用 echo 命令的模式匹配字符功能,可以输入:
echo The back-up files are: *.bak
该用法将显示消息备份文件后跟有当前目录中以 .bak 结尾的文件名。

在正则表达式中,中括号[]是特殊字符,会匹配其中的任意一个字符且只是一个字符。

当想输出类似 [abc]这样的字符串时,最好使用双引号括起来。

echo "[abc]"

否则,如果直接使用echo [abc]输出,可能得到不同的”奇怪“的结果。

echo [abc]会在当前目录下,匹配名称为a或者b或者c的文件,如果当前目录包含a、b、c这三个文件中的任意一个,则返回相应的文件列表;否则返回 [abc]本身。

root@test:~# ls -l [abc]
-rw-r--r-- 1 root root 0 Apr 11 17:27 a
-rw-r--r-- 1 root root 0 Apr 11 17:34 b
root@test:~# echo [abc]
a b
root@test:~# echo [cde]
[cde]
root@test:~# echo *.sh
openvpn.sh setup-debian.sh
root@test:~#

在使用echo输出字符串的时候,如果不加双引号,会启用模式匹配功能;如果恰好能匹配到当前目录下的文件,则会输出匹配到的文件名列表。

如果没有匹配到文件的话, 会直接打印相应的字符串。

为了防止不确定的输出结果, 可以将字符串两边添加双引号。 为了中括号的问题去改造以前的代码是个比较大的工程。

  • 本文链接地址:https://www.dbainfo.net/unix-linux-echo-bracket-match-filename.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《echo 命令的模式匹配字符功能》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
    1. 笑话据点
      2012-06-04 08:38:07

      博客手机访问地址是什么?

      • dbainfo
        2012-06-04 19:31:06

        本博客没有专门的wap访问站点,直接访问:www.dbainfo.net

    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)