Shell中bash的特性小结(3)

七、引用功能:
  ‘’ :强引用
    凡是被单引号引用的内容,bash处理时,一律视其为普通字符,即使其本身是bash定义的具有特殊功能能和作用的字符亦是如此,但单引号本身除外;
  “”:弱引用
    被双引号引用的内容中,有些特殊字符仍然会保留其特殊含义,如:$,\,’””;
例如:
[root@localhost ~]# date +%F +%T
date: 额外的操作数 "+%T"
Try 'date --help' for more information.
[root@localhost ~]# date +"%F %T"
2017-10-26 15:25:19
[root@localhost ~]# date +'%F %T'
2017-10-26 15:25:43

八、转义功能
  \:bash定义的转义字符:大多数情况下,“\”只能将其后面一个字符转义;
例如:[root@localhost ~]# echo \$PATH
$PATH
[root@localhost ~]# echo \$$PATH
$/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
\COMMAND:取消定义过的命令别名,而使用命令本身的功能;

九、Globbing——文件名通配符,简称为glob:
 *:匹配任意长度的任意字符或字符串;(某些特殊位置的“.”是不能匹配的)
 ?:匹配任意单个字符;(某些特殊位置的“.”是不能匹配的)
 []:匹配任意指定范围内的人以单个字符,必须匹配且只能匹配一个字符;
  指定范围的方法:
  1.枚举法:列出所有有效字符;
  2.范围指定:
[0-9]:表示所有单个的十进制数字;
[a-z]:a,A,b,B……y,Y,z(不包含Z)
[A-Z]:A,B,b,C……y,Y,Z,z(不包含a)
  3.bash内建字符集:
    [:lower:]:所有的小写字母
    [:upper:]:所有的大写字母
    [:alpha:]:所有字母包括大小写
    [:digit:]:所有的单个十进制数字
    [:alnum:]:所有的字母和十进制数字
    [:punct:]: 所有的符号
    [:space:]:表示空白字符,包括空格和制表符
  4.反向匹配:
    ^
    示例:
      #ls a[^[:digit:]]?? //表示文件名的第二个字符不能是十进制数字;
      注意:当中括号中有^表示字符集反向匹配时,注意*的使用;因为通配范围可能会导致反向匹配失败;
此类失败是因为bash的globbing是在贪婪模式下匹配的;

十、管道
 |
  管道通常用来连接多个命令的:将管道符号前面的命令的执行的输出结果通过管道传递给管道符号后面的命令,让后面的命令将前面的输出结果当成参数使用;
 wc
 wc - print newline, word, and byte counts for each file
 格式:wc [OPTION]... [FILE]...
  常用选项:
  -c, --bytes:仅显示文件中字节数;
  -m, --chars:仅显示文件有效字符的数量
  -l, --lines:仅显示文件中内容的行数
  -w, --words:仅显示文件中字的数量
 注意:
1. 一般来讲,凡是被管道连接的命令,都应该能够在执行成功之后完成命令结果的输出,否则管道无意义;
2. 管道不是万能的,有些场合没办法使用管道的 ;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13298.html