Linux 命令行通配符及转义符的实现
吾爱主题
阅读:279
2024-04-05 13:55:45
评论:0
我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令会是:
?1 2 3 4 | [root@linuxprobe ~] # ls /dev/sda [root@linuxprobe ~] # ls /dev/sda1 [root@linuxprobe ~] # ls /dev/sda2 [root@linuxprobe ~] # ls /dev/sda3 |
但有些时候确实不知道分区的
通配符
星号(*)代表匹配零个或多个字符
?1 | huanyu@ubuntu:~$ ls -l /dev/sda * |
问号(?)代表匹配单个字符
?1 | huanyu@ubuntu:~$ ls -l /dev/sda ? |
中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符
?1 2 | huanyu@ubuntu:~$ ls -l /dev/sda [0-9] huanyu@ubuntu:~$ ls -l /dev/sda [135] |
?
1 2 | [root@linuxprobe ~] # ls /dev/sda* /dev/sda /dev/sda1 /dev/sda2 |
?
1 2 | [root@linuxprobe ~] # ls /dev/sda? /dev/sda1 /dev/sda2 |
?
1 2 | [root@linuxprobe ~] # ls /dev/sda[0-9] /dev/sda1 /dev/sda2 |
?
1 2 | [root@linuxprobe ~] # ls /dev/sda[135] /dev/sda1 |
转义符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串
?1 | huanyu@ubuntu:~$ echo "price is \$$price" |
反引号(``):把其中的命令执行后返回结果
?1 | huanyu@ubuntu:~$ echo ` uname -a` |
示例
定义名称为price的变量值为5:
?1 | [root@linuxprobe ~] # price=5 |
想要输出”价格是5″:
?1 2 | [root@linuxprobe ~] # echo "price is $price" price is 5 |
想要输出”价格是$5″,但因为美元符号与代表变量取值的$符号冲突了,所以报错了:
?1 2 | [root@linuxprobe ~] # echo "price is $$price" price is 3767price |
添加一个反斜杠,将第一个$符号转义:
?1 2 | [root@linuxprobe ~] # echo "price is \$$price" price is $5 |
使用单引号,变量将不再被取值:
?1 2 | [root@linuxprobe ~] # echo 'price is \$$price' price is \$$price |
执行uname -a后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):
?1 2 | [root@linuxprobe ~] # echo `uname -a` linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 smp mon may 5 11:16:57 edt 2014 x86_64 x86_64 x86_64 gnu/linux |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/jin970505/article/details/78503367
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。