##特殊符号与正则表达式的区别
#()在awk/sed/grep中使用的特殊符号-->正则表达式
#()在命令行或脚本中使用的特殊符号-->以下特殊意义
##特殊符号(通配符)列表
< 0< | 输入重定向 | mail -s 1091*****@qq.com </etc/hosts.txt ##将host.txt中的内容写入的邮件内容 |
| > | 输出重定向 | |
| >> | 追加输出重定向 | 不覆盖之前的内容,在文档最后继续写入追加的内容 |
| | | 管道 | 将前一个命令得到的结果,通过管道传给下一个命令作为参数使用 |
| \ | 转义字符 | 让有特殊意义的字符去除特殊意义,例如"."(代表当前目录),“\.”则只代表".";例如"$"(代表以...结尾),"\$"即表示$本身 |
| * | 匹配所有 | 即任意字符重复n次,类似正则中".*" |
| ? | 匹配任意一个字符 | 类似正则中"." |
| $ | 引用变量 | 正则中表示行尾 |
| # | 注释符 | 一般为配置文件中注释,使该行不解释 |
| ~ | 当前用户家目录 | |
| .和./ | 当前目录或隐藏文件 | 例如:ll -a /root/.bash_rc |
| ..和../ | 当前目录上一级目录 | cd . ##当前目录 cd .. ##返回当前目录的上一级目录 cd - ##返回上一次所在的目录 |
| / | 根目录或路径分隔符 | |
| ; | 命令分隔符 | 两个命令在同一行执行,则用";"隔开 |
| {} | (1)生成字符或字符序列 (2)find里面使用的意思是“前面命令的结果” | (1)一般配合echo等命令使用,类似seq. mkdir /data/{3306,3307,3308}/data ##同时创建3306和3307、3308目录 mkdir stu{001..100} ##同时创建100个目录,stu001.stu002...stu100 echo {1..100} ##产生1 2 3...100的序列 (2)配合find -exec命令一起使用 find /et/ -type f -name "ssh.bak*" -exec rm -f {} \; |
| || | 或 | 只有前面的命令不能正确执行,才执行后面的命令 ech 12 >>/dev/null || echo 2 |
| && | 且,与 | 只有当前面的命令执行成功后才执行后面的命令 echo && echo 1 |
| `` | 两个反引号 (引用命令的参数) | echo `date` |
| '' | 两个单引号 (不具有变量置换功能) | 输出所见所得,看到啥就输出啥 (只是对''内的变量引用不能生效,但是特殊符号的意义保留) |
| "" | 两个双引号 (具有变量置换功能) | 能够解析调用的变量输出 (若引用的内容中有'',保持引用符号不同,需使用"",反之亦然) |
| ! | 调用最近一次使用的命令、参数或者取反 | !+数字 表示调出历史的第几条命令 !! 表示使用最近一次操作的命令 !+commond 表示调用最近一次使用该命令开头的命令 !$ 表示调用上一次使用的参数(变量) cat/etc/sysconfig/network-scripts/ifcfg-em1 cat !$ 显示同样的结果 "非”,取反:(!在哪个参数前面,即对该参数取反) find /home/jason/ ! -type f-name "a.sh" ##搜索不是文件类型,但是名字为a.sh find /home/jason/ -type f ! -name "a.sh" ##搜索文件名不为a.sh的文件 find取“或”"-o" find/home/jason/ -type f -name "a.sh" -o -name "b.sh" ##搜索文件名为a.sh或者b.sh的文件 find取“且”"-a" find/home/jason/ -type f -name "*a.sh" -a ctime -15 ##搜索包含a.sh的文件,并且该文件修改时 |
转载于:https://blog.51cto.com/jschu/1852772
本文详细介绍了Shell脚本中常用的特殊符号及其应用场景,包括输入输出重定向、管道、转义字符等,并对比了这些符号与正则表达式的区别。
1435

被折叠的 条评论
为什么被折叠?



