Shell 脚本结构和执行方法
开头需要加#!/bin/bash
以#号开头作为解释说明
脚本的名字以.sh结尾,用于区分这是一个shell脚本
执行方法有两种
chmod +x 脚本名;./脚本名
bash 脚本名
查看脚本执行过程 bash -x 脚本名
查看脚本是否语法错误 bash -n 脚本名
date 命令
date命令在shell脚本中最常用的几个用法
date +%Y 表示以四位数字格式打印年份
date +%y 表示以两位数字打印年份
date +%m 表示月份
date +%d 表示日期
date +%H 表示小时
date +%M 表示分钟
date + %S 表示秒
date +%w 表示星期 0则表示周日
date 加上-d 选项可以表示前一天的日期
shell脚本中的变量
定义变量的格式为 变量名=变量的值
在脚本中引用变量时需要加上符号$
反引号的作用是将引号中的字符串当成shell命令执行
在进行数学运算的时候要用中括号括起来 并且前面要加上符号$
read 命令用于和用户交互,他把用户输入的字符串作为变量的值
shell脚本的预设变量
$0表示脚本本身,$1表示脚本的第一个参数,$2表示脚本的第二个参数
shell 脚本的逻辑判断
不带else
具体格式如下
if 判断语句
then
fi
像(($sum>2))这样的形式,是shell脚本特有的形式
带有else的
他们两个的唯一区别就是 如果sum的值小于等于3就会输出hello
&& 表示并且 || 表示或者
判断数值的大小除了用(())的形式外,还可以使用[ ] 但是不能使用> 、< 、=这样的符号
要使用 -lt 小于、-gt 大于、-le 小于或等于 、-ge 大于或等于、-eq等于 、-ne 不等于
和文档相关的判断
shell脚本中的if还经常用于判断文档的属性
例如使用-d 命令查看目录是否存在
case 逻辑判断
case 变量 in
value1)
command
;;
value2)
command
;;
*)
;;
esac
上面结构中,不限制value的个数,*代表其他值
脚本中的$a 值为1或0 的时候执行结果各不同
shell 脚本中的循环
常用到的循环有 for 循环和while 循环
脚本中的seq 1 5 表示从1到5的一个序列
for 变量名 in 循环条件;do
command
done
循环的条件 还可以引用系统命令的执行结果(seq 1 5) 但必须用反引号括起来
while 循环
常用while循环来编写死循环的脚本,用于监控某项服务
while 条件
do
command
done
也可用一个冒号代替循环条件 这样可以做到死循环
shell脚本的中断和连续
break 用在循环中,不管是for 还是while都可以 ,他表示跳出该层循环
continue 也是用在循环中的,但和break不同的是,当在shell脚本遇到conyinue时结束的不是整个循环而是本次循环
exit 是直接退出整个shell脚本