shell 编程与定时任务

linux中,正则表达式用来在文件中匹配符合条件的字符串;通配符用来匹配符合条件的文件名。

基础正则表达式

在这里插入图片描述

文件截取命令

grep命令本身也是一个文件提取命令,它是按行搜索的;cut命令是按列提取信息。
在这里插入图片描述
cut命令默认的分隔符是制表符(Tab),使用选项-d可以指定分隔符。cut命令一般结合grep命令使用。例如有如下student.txt文件:
在这里插入图片描述
输出男生的学生的姓名: grep -v “W” student.txt | cut -f 2
当文件并没有按制表符或者其他符号标准的分割时,cut命令就不够用了。

awk命令:
语法:awk ‘条件1{动作1}条件2{动作2}…’ 文件名
常用条件:BEGIN,END
例子:# awk ‘{printf $2 “\t” $4 “\n”}’ student.txt 输出第2列,第4列
# awk 'BEGIN{print “this begin”} {printf $2 “\t” $4 “\n”} 在第一行输出this begin。(END是在末尾输出)
#awk ‘BEGIN{FS=":"}{print $1 “\t” $3}’ /etc/passwd 对以:分割的文件提取第1列,第3列(因为awk是先读入一行数据,在按规则处理。所以需要添加BEGIN)
#cat student.txt | grep -v Name | awk ‘$4>=85{print $2}’ 输出分数不低于85的学生的姓名

字符处理命令

在这里插入图片描述
在这里插入图片描述

条件判断

两种格式:test [选项] 文件名 或者 [ [选项] 文件名 ]

在这里插入图片描述
上表中,比较常用的就是 -d -e -f 三个。
例如:#[-d /root ] && echo yes || echo no 判断root文件是否存在且为目录文件
在这里插入图片描述
例如:# [ -w student.txt ] && echo yes || echo no 判断student.txt文件是否有写权限
注意!:此时他不区分用户的身份,也就是说该文件的三个用户(所属者,所属组,其它)只要有一个用户具有写权限就为真。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
判断字符串的操作是十分常用的。
注意:调用变量的时候最好加上双引号,例如:[ $name==“zzj” ]当name变量为空的时候就会报错:( [: ==: unary operator expected).
是因为name为空,它就变成了 [ == “zzj” ] 导致语法错误!而且两字符串比较的时候 == 和 !=两侧必须有空格!!!

在这里插入图片描述

流程控制

if语句

在这里插入图片描述
在这里插入图片描述
备份文件:

case语句

在这里插入图片描述

for循环

在这里插入图片描述
这种语法更适合在:in 后面为命令的执行结果情况。如批量解压lamp目录下的tar.gz压缩包:
在这里插入图片描述
在这里插入图片描述

while循环

在这里插入图片描述

until循环

和while循环相反,until循环是只要条件不成立就一直循环,直至条件成立。格式与while循环一样。

定时任务

在这里插入图片描述

crontab -e 编辑的固定格式:* * * * * command
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值