一、shell脚本
(一)什么是shell脚本
- shell脚本的创建和执行
• shell脚本通常都以.sh为后缀名,但并非不加.sh的脚本就不能执行
• 脚本执行方法:sh 【脚本名】或 ./脚本名
• ./脚本名 的方法运行shell脚本的前提是脚本本身有执行权限
• sh命令执行shell脚本时,可加-x选项查看 - 命令date
• date +%Y:表示以四位数字格式打印年份
• date +%y:表示以两位数字格式打印年份
• date +%m:表示月份
• date +%d:表示日期
• date +%H:表示小时
• date +%M:表示分钟
• date +%S:表示秒
• date +%w:表示星期,结果显示0则表示周日
(二)shell脚本中的变量 - 数学运算
• 数学计算要用[]括起来,并且前面要加符号$ - 和用户交互
• read命令用于和用户交互,它把用户输入的字符串转为变量值 - shell脚本预设变量
• shell脚本在执行时,后面可以跟一个或者多个参数
• shell脚本中,$1是脚本的第一个参数,$2是脚本的第二个参数,以此类推
• $0代表脚本本身
(三)shell脚本中的逻辑判断 - 不带else
• 具体格式:
if 判断语句;then
command
fi - 带有else
• 具体格式:
if 判断语句;then
command
else
command
fi - 带有elif
• 具体格式:
if 判断语句1;then
command
elif 判断语句2;then
command
else
command
fi - 和文档相关的判断
• shell脚本中if还经常用于判断文档的属性,比如判断是普通文件还是目录,判断文件是否有读、写、执行权限等。if常用选项如下:
• -e:判断文件或目录是否存在
• -d:判断是不是目录以及是否存在
• -f:判断是不是普通文件以及是否存在
• -r:判断时候有读权限
• -w:判断是否有写权限
• -x:判断是否可执行 - case逻辑判断
• 具体格式:
case 变量 in
value1)
command
;;
value2)
command
;;
*)
command
;;
esac
• value不限制个数,*代表其他值
(四)shell脚本中的循环 - for循环
• 具体格式:
for 变量名 in 循环条件;do
command
done
• 循环条件可以是一组字符串或数字(用一个或多个空格隔开),也可以是一条命令的执行结果
• 循环条件还可以引用系统命令的执行结果,但必须用反引号括起来 - while循环
• 具体格式:
while 条件;do
command
done
• 若用冒号代替循环条件,可以做到死循环
(五)shell脚本中的函数
• shell脚本中,函数一定要写在最前面,不能出现在中间或最后,否则容易出错
(六)shell脚本中的中断和继续 - break
• break仅仅是退出当层循环,它的上一层循环不受影响 - continue
• shell脚本中遇到continue时,会结束本次循环而不是整个循环 - exit
• 类似上面两个,但作用范围更大,直接退出整个shell脚本