shell编程之shell字符
Posted 锦衣admin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之shell字符相关的知识,希望对你有一定的参考价值。
shell编程之shell字符
shell字符
shell基本字符说明:
基本字符说明:
#l ! :执行历史命令。如:!100 就是执行历史命令的第100条;!! 是执行上一条命令
#l $ :变量中取内容符号
#l \\ :转义字符。不跟运算是是转义字符
#l + - * \\ % :运算符。对应 加 减 乘 除 取余数
#l & :后台执行。将命令放在后台运行
#l ; :分号可以在shell中一行执行多条命令,命令之间用分号";" 分割。如:echo -n "today is:";date +%F
#l `` :反引号,在命令中执行命令。如:echo "today is `date +%F`"(注意不要使用单引号)
#l ' ' :单引号,脚本中的字符串要用单引号引来,但不能解析单引号内的变量
#l " " : 双引号,脚本中出现的字符串可以用双引号引起来,但是双引号能够解析双引号的变量
备注:单引号和引号的区别:单引号不解析变量,双引号解析变量
通配符说明:
通配符说明:
#l ~ :家目录。如:cd ~ 代表回到用户家目录
#l * :匹配所有,0或多个任意字符。星号是shell中的通配符(通过转义符将星号转义成通配符:\\*)
#l ? :匹配除回车以外的任意一个字符。问号是shell中的通配符
#l [list] :匹配 [list] 中的任意单个字符
#l [^list] :上一个选项的取反,只能针对单个字符
或 => 两者相等
#l [!list] :匹配除 [!list] 中的任意单个字符
#l {string1,string2,...} :匹配tring1,string2或更多字符串
备注:? 和 [] 只匹配一个字符
演示:
# rm -rf file?? => ? 匹配单个字符,即匹配10-99
[root@server ~]# touch file{1..99}
[root@server ~]# rm -rf file??
[root@server ~]# ls
file1 file2 file3 file4 file5 file6 file7 file8 file9
# rm -rf file[3-9] => 只能匹配删除单个字符
[root@server ~]# touch file{1..9}
[root@server ~]# rm -rf file[3-9]
[root@server ~]# ls
file1 file2
# rm -rf file{4..99} => 可以删除多个连续文件
[root@server ~]# touch file{1..99}
[root@server ~]# rm -rf file{4..99}
[root@server ~]# ls
file1 file2 file3
重定向说明:
重定向说明:
#l > :覆盖输入
#l >> :追加输入
#l < :输出
#l << :追加输出,在交互式中用到
备注:需要在追加输出的命令中用"EOF 命令.. EOF" 或"EOF 命令.. END" 括起来
演示:
# wc /etc/passwd => 将文件调入内存然后统计
[root@server ~]# wc /etc/passwd
45 92 2365 /etc/passwd
# wc -l < /etc/passwd => 将文件的数据流传输给wc命令进行统计输出
[root@server ~]# wc -l < /etc/passwd
45
# fdisk /dev/sdb <<EOF => 通过 << 打印分区
[root@server ~]# fdisk /dev/sdb <<EOF
> n => 新建分区
> p => 新建主分区
> 1 => 分区编号为1
> => 开始扇区默认
> +2G => 结束扇区
> w => 保存退出
> EOF => << 追加输出结束
=> 以上命令是给/dev/sdb设备创建一个大小为2G的主分区1
管道符命令说明:
管道符命令说明:
#l | :管道符。上一个命令的输出作为下一个命令的输入
以上是关于shell编程之shell字符的主要内容,如果未能解决你的问题,请参考以下文章