每日一道shell脚本练习(01)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一道shell脚本练习(01)相关的知识,希望对你有一定的参考价值。
0. 引言准备开一个新坑,每天更新一道shell练习。因为shell脚本属于那种不练习就会生疏,甚至忘记的技能,所以,为了对抗遗忘阻力,我只能不断加强练习了。
1. 第一天练习题目
【题目】
请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2018-04-08.log,并且把磁盘的使用情况写到这个文件中,不用考虑cron,仅仅写脚本即可。
【分析】
第一点,要明白 linux 命令 date 的用法,打印“xxxx-xx-xx”这样的时间格式用date +%F 或者 date +%Y-%m-%d;
第二点,检查磁盘使用情况的命令是:df -h 。
2. 具体脚本
有了上面两点分析,写脚本就很容易了。
#!/bin/bash
name=`date %F`
logfile=$name.log
df -h > $logfile
【脚本分析】
将当天的日期赋值给变量name,然后定义日志文件名logfile。
“>”这个符号在shell 脚本中有输出重定向的功能。它比较特殊,可以将符号左边的输出内容,写入到该符号的右边的文件中。
3. 扩展知识
-
shell 中反引号可以表示一个命令的结果,通常给变量赋值,例如下面的命令:
# n=`wc -l /etc/passwd | awk ‘{print $1}‘` # echo $n 29
-
date 还有诸多用法,例如:
date +%H # 小时 21 date +%M # 分钟 48 date +%S # 秒钟 48 date +%T # 时间 21:49:04 date %w # 星期 0 # 从0开始,表示星期日 date -d "-1 day" +%F # 表示1天之前,-d 用来进行算术运算 2018-04-07 date -d "-1 hour" ‘+%T‘ # 表示 1 小时以前 20:50:01
- ">" 为正确重定向,我们运行一条命令时,有正确的信息输出,也有可能会有错误的信息输出。与 > 相对应的,就有一个 2> 这样的错误重定向符号,它就是负责将命令的错误返回信息输出到指定的文件。例如:
[[email protected] work]# ls /etc/nofile
ls: cannot access /etc/nofile: No such file or directory
上面的这条就是错误的提示信息。
ls /etc/passwd /etc/nofile > /tmp/log 2> /tmp/errorlog
[[email protected] work]# cat /tmp/log
/etc/passwd
[[email protected] work]# cat /tmp/errorlog
ls: cannot access /etc/nofile: No such file or directory
4. 总结
今天的脚本,复习了反引号的用法,date命令和df 这个查看磁盘使用情况的命令。还对这几个命令进行了扩展学习。
以上是关于每日一道shell脚本练习(01)的主要内容,如果未能解决你的问题,请参考以下文章