实例4:使用 ^[] 匹配开头是0-9的任意字符
[root@localhost ~]# ls 123 1233 12333 abbc abc abcc abccc admin lyshark lyssark multiuser rui sec wang [root@localhost ~]# ls [0-9]* 123 1233 12333实例5:使用 ^[^] 匹配开头不是0-9的任意字符
[root@localhost ~]# ls 123 1233 12333 abbc abc abcc abccc admin lyshark lyssark multiuser rui sec wang [root@localhost ~]# ls [^0-9]* abbc abc abcc abccc admin lyshark lyssark multiuser rui sec wang ◆bash 特殊通配符◆ 符 号 作 用\'\' 单引号:在单引号中的内容,全部会脱意,它是脱意字符.
"" 双引号:双引号内,拥有$调用变量,引用命令,和转义符的特殊含义.
`` 反引号:反引号内会被当成命令解析,先执行
$() $加括号:同反引号作用相同,执行解析命令
() 小括号:用于命令执行,小括号中的命令会在子shell中执行
{} 中括号:用于命令执行,中括号中的命令会在当前shell中执行
[] 大括号:用于测试变量
# 警号:在shell脚本中,警号表示注释
$ $符号:用于调用变量值
\ 转义符:用于转义\之后的内容不被执行
单引号与双引号: 单引号当中的特殊字符被脱意了,而双引号也是脱意,但是$和\不会脱意
[root@localhost ~]# name=lyshark [root@localhost ~]# echo \'$name\' $name [root@localhost ~]# echo "$name" lyshark [root@localhost ~]# echo "{{{ lyshark" {{{ lyshark单引号与反引号: 单引号和双引号会脱意,在双引号中的反引号会执行
[root@localhost ~]# echo \'date\' date [root@localhost ~]# echo "date" date [root@localhost ~]# echo \'`date`\' `date` [root@localhost ~]# echo "`date`" Sun Sep 23 22:56:34 EDT 2018 [root@localhost ~]# echo $(date) Sun Sep 23 22:56:46 EDT 2018**反引号与\(()** 关于反引号,和\)()两种都是命令执行
[root@localhost /]# echo ls ls [root@localhost /]# echo `ls` bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@localhost /]# echo $(ls) bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var关于小括号,中括号,和大括号的说明
● ()执行一串命令时,需要重新开一个子shell进行执行
● {}执行一串命令时,是在当前shell执行
● ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
● ()最后一个命令可以不用分号
● {}最后一个命令要用分号
● {}的第一个命令和左括号之间必须要有一个空格
● ()里的各命令不必和括号有空格
小括号: ()执行命令时,新开一个子shell执行
[root@localhost ~]# name=lyshark [root@localhost ~]# ( name=bash;echo $name ) bash [root@localhost ~]# echo $name lyshark中括号:{}执行命令时,会在当前shell中执行
[root@localhost ~]# name=lyshark [root@localhost ~]# { name=bash;echo $name; } bash [root@localhost ~]# echo $name bash [root@localhost ~]#Shell的数据流重定向
| 设备 | 设备文件名 | 文件描述符 | 类型
|
|:--------|:-------------