citic 2020-05-03
主要用于匹配文件和目录 如果是内容需要用更复杂得正则
* 匹配 0个或者多个任意字符
? 匹配一个字符
[-] 匹配括号中任意一个字符 -代表范围 如a-z A-Z 0-9
[^] 匹配不是括号中的一个字符 如 [^a-9] 匹配不是0-9的字符
[ ~]# ls anaconda-ks.cfg lnmp1.6.tar.gz lnmp-install.log post_install.log test [ ~]# cd test [ test]# touch dya dyb dyc dyabc dy1 dy2 dy3 dy55 dydd [ test]# ls dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [ test]# ls dy* dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [ test]# ls dy[a-z] dya dyb dyc [ test]# ls[^a-z] bash: ls[^a-z]: 未找到命令 [ test]# ls [^a-z] ls: 无法访问[^a-z]: 没有那个文件或目录 [ test]# ls dy[^a-z] dy1 dy2 dy3 [ test]# ls dy? dy1 dy2 dy3 dya dyb dyc [ test]# ls dy[a-z]* dya dyabc dyb dyc dydd [ test]# ls dy[a-z][a-z] dydd [ test]#
单引号所有特殊符号丧失含义
双引号 $符号会解析
反引号会执行命令 可以用$()替换
\ 转义特殊符号
[ test]# echo $name test [ test]# echo ‘$name‘ $name [ test]# echo "$name" test [ test]# a=`ls` [ test]# echo $a dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [ test]# [ test]# b=$(ls) [ test]# echo $b dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [ test]# [ test]# echo $b dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd [ test]# echo \$b $b