bash中的通配符和其他特殊符号

1.bash中的通配符

170506_VvB0_2988360.png

###删除tmp目录中的所有文件
[root@wenhaijin apache-tomcat-8.5.9]# cd /tmp
[root@wenhaijin tmp]# rm -rf *

###创建几个文件来演示通配符效果
[root@wenhaijin tmp]# touch abc
[root@wenhaijin tmp]# touch abcd
[root@wenhaijin tmp]# touch 012
[root@wenhaijin tmp]# touch 0abc
[root@wenhaijin tmp]# ls
012  0abc  abc  abcd

###"*"匹配任意字符,以abc结尾
[root@wenhaijin tmp]# ls *abc
0abc  abc
###匹配包含abc的文件
[root@wenhaijin tmp]# ls *abc*
0abc  abc  abcd
###"?"匹配单个字符
[root@wenhaijin tmp]# ls ?abc
0abc
###匹配以abc结尾,且前面有且只有一个数字打头的文件
[root@wenhaijin tmp]# ls [0-9]abc
0abc
###匹配以abc结尾,且前面有且只有一个非数字类型字符的文件
[root@wenhaijin tmp]# ls [^0-9]abc
ls: cannot access [^0-9]abc: No such file or directory
[root@wenhaijin tmp]# touch fabc
[root@wenhaijin tmp]# ls [^0-9]abc
fabc

2.bash中的其他特殊符号

171904_s1iZ_2988360.png

###使用$符号引用变量(定义变量的时候=两边不能加空格,否则会报错)
[root@wenhaijin tmp]# name=wenhaijin
[root@wenhaijin tmp]# echo $name
wenhaijin

###单引号中的特殊字符没有特殊含义,bash会将其原封不动地输出
[root@wenhaijin tmp]# echo '$name'
$name

###双引号中的特殊字符具有特殊含义
[root@wenhaijin tmp]# echo "$name"
wenhaijin

###bash会将反引号(esc下方的按键)中的内容当做命令来执行
[root@wenhaijin tmp]# abc=date
[root@wenhaijin tmp]# echo `abc`
-bash: abc: command not found
[root@wenhaijin tmp]# echo `$abc`
Sat Apr 8 17:12:22 CST 2017
[root@wenhaijin tmp]#

###由于反引号很容易被看成单引号,所以可以用$()来等价替换单引号
[root@wenhaijin tmp]# abc=$(date)
[root@wenhaijin tmp]# echo $abc
Sat Apr 8 17:14:05 CST 2017

###转移符'\'的作用是使跟在\后面的特殊符号失去特殊含义
[root@wenhaijin tmp]# name=wenhaijin
[root@wenhaijin tmp]# echo $name
wenhaijin
[root@wenhaijin tmp]# echo \$name
$name

 

转载于:https://my.oschina.net/u/2988360/blog/875367

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值