课程章节: 第2章 shell编程基础:2-11 Shell中的判断语句、2-12 Shell中的循环语句(一)(课程链接:https://coding.imooc.com/lesson/549.html#mid=50187
https://coding.imooc.com/lesson/549.html#mid=50188)
主讲老师: 沈奇才
课程内容:shell编程实战与Linux运维基础--初始shell编程
课程收获:
一、判断语句(继续上次课程笔记):
if ls; then ##if 后面还可以直接跟linux命令
echo "执行成功"
fi
if ls /not exist file; then ###ls一个不存在的目录打印"执行失败",即$?=0
echo "执行成功"
else "执行失败"
fi
延伸,通过函数返回情况打印执行成功或直白:
xyz(){
echo "执行xyz函数"
return 1 ## 返回非0的值代表失败,结果会传给 $?
}
if xyz; then
echo "函数执行成功"
else "函数执行失败"
fi
还有种条件判断:双中括号:[[]],linux命令里面可以直接用不需要写if
[[ -e "/root" ]]
echo $?
如果存在/root目录则echo $?结果是0,反之返回1
if里面的条件:与(&&)、或(||)
if [ 条件1 ]&&[ 条件2 ] 等价 if [ 条件2 -a 条件2 ]
二、循环语句(新课程笔记:):
1、for循环
for 条件
do
循环体
done
例1
for a in aaa bbb ccc
do
echo "循环变量:$a"
done
例2
arr1=(aaa bbb ccc "hello, world!")
for a in ${arr1[@]} ### 如果${arr1[@]} 不用双引号括起来则 "hello, world!"这个元素会被拆分成两个
do
echo "遍历数组元素:$a"
done
例3
for i in `seq 1 10` ###for后面接Linux命令
shell里面空格、换行、制表符都可以拆分元素
改变内置分隔符:IFS
IFS=$'\n' ###按照换行符分隔
declare |grep IFS
IFS=$' \t\n'