shell实战训练营Day6

shell编程
shell是一种编程语言,可以使用逻辑判断,循环等语法。
可以自定义函数。
shell是系统命令的集合。
shell脚本意识实现自动化运维,提高工作效率。

shell脚本的结构和执行
1.开头要使用 #!/bin/bash ——文件头,已什么解释器执行
2.#开头为解释说明
3.脚本以.sh结尾,用于区分这是一个shell脚本。
有两种脚本执行方式
1 bash file.sh
2 chmod +x file.sh; ./file.sh
查看脚本执行过程 bash -x file.sh
查看脚本语法是否有误 bash -n file.sh 若无返回,这shell脚本无语法错误。

date 命令用法
date +%Y%m%d 显示年月日 20181224
date +%y%m%d 显示年月日 181224
date +%Y-%m-%d 显示年月日 2018-12-24
date +%F 显示年月日 2018-12-24 (效果同上)
date +%H:%M:%S 显示时分秒 18:34:01
date +%s 显示时间戳 1545647782 (距1970-01-01过了多少秒)
date +%w (小w) 显示星期几 显示1即表示星期一
date +%W(大W) 显示今年的第几周 显示52即表示今年的第52周
date -d "+1 day" 表示一天后
date -d "-1 day" 表示一天前
date -d "-1 day" +%F 显示一天前以前,已年月日的格式
date -d "-1 min" +%T 显示一分钟以前,已时分秒的格式
date +%s -d "2018-12-24 18:45:59" 将时间换算为时间戳 1545648359
date -d@1545648359 将时间戳换算为具体时间 2018年 12月 24日 星期一 18:45:59 CST

shell脚本中的变量
1.当脚本中的字符串使用频率较高或字符串较长时,使用变量代替。
2.使用条件语句时,用变量代替 if[ $a -gt 1]; then....;fi
3.引用某个命令的结果时,用变量代替。 n=wc -l file.txt
4.写和用户交互的脚本时,变量也是必不可少的。read - p "Input a number:"n; echo $如果改写这个n,可以直接使用$REPALY
5.内置变量 $0,$1,$2,$# ,$0表示脚本本身,$1表示第一个参数,$#表示参数的个数
6.数学运算 a=1;b=2;c=$(($a+$b)) 或者 $[$a+$b]

shell中的逻辑判断 if
格式1 : if 条件;then语句;fi

#! /bin/bash
a=5
if [ $a -gt 3 ]
then
echo ok
fi

if [ $a -gt 3 ];then echo ok;fi

格式2: if 条件;then 语句;else 语句;fi;

#! /bin/bash
a=2
if [ $a -gt 3 ]
then
echo ok
else
echo not ok

fi

if [ $a -lt 3 ];then echo ok;else ehco not ok;fi

格式3:if条件;then语句;elif条件;then语句;else语句;fi

#! /bin/bash
a=5
if [ $a -gt 1 ]
then
echo ">1"
elif [ $a -lt 6 ]
then
echo "<6 && >1"
else
echo not ok
fi

if [ $a -gt 1 ];then echo ">1";elif [ $a<6 && $a>1 ];then echo "<6 && >1";else echo no ok; fi

-gt 大于 -lt 小于 -eq 等于
-ge 大于等于 -le 小于等于 -ne 不等于

支持 && 逻辑与;支持|| 逻辑或
if [ $a -gt 3 ] &&[ $a -lt 8 ] ;then echo ok;fi
if [ $a -gt 3 ] ||[ $a -lt 8 ] ;then echo ok;fi

猜你喜欢

转载自blog.51cto.com/12948291/2334723