文章目录
- 创建shell脚本并运行
- 条件测试
- 基础shell脚本
- 打包过去24小时内修改过的文件
- 自动解压 bzip2, gzip 和 zip不同类型的压缩包
- 打印一个rpm包的统计信息【含有输入参数】
创建shell脚本并运行
方式1:
vim myshell.sh
#文件开头是#!/bin/bash 或 #!/bin/sh
sh myshell.sh
方式2:
vim myshell
#需要设置文件为可执行的状态
chmod +x myshell
#作为可执行文件直接执行,有的后面可带输入参数
./myshell
条件测试
博主-条件测试传送门
&&的妙用,并用echo来反馈前一个命令任务是否成功:
基础shell脚本
打包过去24小时内修改过的文件
#!/bin/bash
tar -zcvf lastmodify.tar.gz `find . -mtime 1 -type f -print`
注意`` 可以将【一个命令的输出】作为作为【另一个命令的输入参数】,其中mtime是过去24小时修改的意思
自动解压 bzip2, gzip 和 zip不同类型的压缩包
创建一个smartzip的脚本实现,能实现自动的解压缩bzip2, gzip 和 zip不同类型的压缩包。
思路:利用file命令首先判断文件的类型,按照字符串的匹配来使用不同的解压缩命令进行解压缩
#!/bin/sh
# USAGE:smartzip file.zip
# EXAMPLE:smartzip articles.zip
#ftype变量是查询文件类型后的字符串信息,利用case来进行字符串匹配
#$1 就是脚本命令中输入参数的第一个
ftype=`file "$1"`
case "$ftype" in
#file查出的信息开头就是那个文件的名字,所以字符串拼接头就是$1,冒号后开始具体的文件类型
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
gunzip "$1" ;;
"$1: bzip2 compressed"*)
bunzip2 "$1" ;;
*) error "File $1 can not be uncompressed with smartzip";;
esac
case的脚本语法形式为:
打印一个rpm包的统计信息【含有输入参数】
vim一个showrpm的脚本文件,同时chmod +x showrpm命令
#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm <-- 实现查看某个文件下的rpm包的统计信息
# 正常测试:需要使用./showrpm rpmfile1 rpmfile2 来完成
for rpmpackage in $*; do
# -r判断这个变量属性是否可以read
if [ -r "$rpmpackage" ];then
echo "=============== $rpmpackage =============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done
注意这里的$*表示输入行命令参数的所有值,如果是$1表示输入命令行参数中的第一个参数。
for-loop的脚本语法形式为