Shell编程基础-2-分支和循环
接上篇
四、分支结构
1、if分支
if [ EXPR1 ]
then
…
elif [ EXPR2 ]
then
…
fi
2、case分支
*case word in
WORD1) …
;;
WORD2) …
;;
) …
;;
esac
五、循环结构
引用变量然后加上括号,就变成了了数组。
1、while循环
while [ EXPR ]
do
…
done
2、until循环
可以理解为:直到满足xxx条件才结束
until [ EXPR ]
do
…
done
3、select
类似Java里的switch case,可以用来写菜单
select VAR in (VAR1 … VARn)
do
…
done
4、for in序列
seq 文件目录 /*
for VAR in (VAR1,… VARn)
do
…
done
5、break和continue使用小案例
自运算(+= /= -= *=)不加美元符号。
6.1案例:水仙花
6.2案例:九九乘法表
6.3测试:双引号和单引导对转义符的影响
双引号里转义符没用,单引号里
没
有
用
。
案
例
e
c
h
o
−
n
"
没有用。 案例echo -n "
没有用。案例echo−n"j*
i
=
i=
i=((i*j))"$’\t’
\t的使用
六、日期
1.获取系统当前时间,不同的格式
(1)DATE = date + “%Y-%m-%d %H:%M:%S”
#2020-11-24 20:11:57
最外层要套上倒引号``
(2)DATE = date + “%Y-%m-%d %X”
#2020-11-24 08:11:57 PM
(3)DATETIME = date +%S
#date日期至今多少秒
2.日期格式化:
date -d date +”FORMAT”
七、代替
1. 命令代替
(1)OUTPUT=command
#先执行命令,等到命令执行结束,将结果赋值给OUTPUT后,才会执行之后的
2、变量
(1)${var:-value} 如果var未设值或值为空,表达式的值为value,var的值不变
A是未初始化的值,执行时输出的是value值,但A本身并未被赋值。如果给A赋值了,则var不为空,就输出var而不管value
(2)${var:=value} 如果var未设值或值为空,表达式的值为value,var的值为value
和-value的不同之处在于,这里面的=value是一种条件赋值,如果var为空,则给var赋值