Shell编程基础-2-分支和循环

Shell基础上篇,讲了基础命令了运算符,欢迎观看

四、分支结构

1、if分支

if [ EXPR1 ]
then

elif [ EXPR2 ]
then

fi

Shell编程基础-2-分支和循环

2、case分支

*case word in
WORD1) …
;;
WORD2) …
;;
) …
;;
esac

Shell编程基础-2-分支和循环

五、循环结构

引用变量然后加上括号,就变成了了数组。
Shell编程基础-2-分支和循环

1、while循环

while [ EXPR ]
do

done

Shell编程基础-2-分支和循环

2、until循环

可以理解为:直到满足xxx条件才结束
until [ EXPR ]
do

done

Shell编程基础-2-分支和循环

3、select

类似Java里的switch case,可以用来写菜单
select VAR in (VAR1 … VARn)
do

done

Shell编程基础-2-分支和循环

4、for in序列

seq 文件目录 /*
for VAR in (VAR1,… VARn)
do

done

Shell编程基础-2-分支和循环Shell编程基础-2-分支和循环Shell编程基础-2-分支和循环Shell编程基础-2-分支和循环

5、break和continue使用小案例

Shell编程基础-2-分支和循环

自运算(+= /= -= *=)不加美元符号。

6.1案例:水仙花

Shell编程基础-2-分支和循环

Shell编程基础-2-分支和循环

6.2案例:九九乘法表

Shell编程基础-2-分支和循环
Shell编程基础-2-分支和循环

6.3测试:双引号和单引导对转义符的影响

双引号里转义符没用,单引号里 没 有 用 。 案 例 e c h o − n " 没有用。 案例echo -n " echon"j* i = i= i=((i*j))"$’\t’
\t的使用
Shell编程基础-2-分支和循环

六、日期

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日期至今多少秒
Shell编程基础-2-分支和循环

2.日期格式化:

date -d date +”FORMAT”
Shell编程基础-2-分支和循环

七、代替

1. 命令代替

(1)OUTPUT=command
#先执行命令,等到命令执行结束,将结果赋值给OUTPUT后,才会执行之后的

2、变量

(1)${var:-value} 如果var未设值或值为空,表达式的值为value,var的值不变
Shell编程基础-2-分支和循环

A是未初始化的值,执行时输出的是value值,但A本身并未被赋值。如果给A赋值了,则var不为空,就输出var而不管value
(2)${var:=value} 如果var未设值或值为空,表达式的值为value,var的值为value
Shell编程基础-2-分支和循环

和-value的不同之处在于,这里面的=value是一种条件赋值,如果var为空,则给var赋值