my_bash语法大全
if嵌套语句格式
if [ 条件 ];then
if [ 条件 ];then
执行这里的代码
fi
fi
if [ 条件 ];then
if [ 条件 ];then
执行这里的代码
fi
else
if [ 条件 ];then
执行这里的代码
fi
fi
if 多分支语句格式(注意:多个分支只会执行一个,执行首先为真的分支)
if [ 条件1 ];then
条件1为真执行这里的代码
elif [ 条件2 ];then
条件2为真执行这里的代码
elif [ 条件3 ];then
条件3为真执行这里的代码
.
.
.
elif [ 条件n ];then
条件n为真执行这里的代码
else
如果所有的条件都不满足时,执行这里的代码
fi
注意:多个分支只会执行一个,执行首先为真的分支
变量列表
for 变量 in 列表; do
循环体
done
进入条件:只要列表中有元素,即可进入循环
退出循环:列表中的元素遍历完成
控制变量
for((i=1;i<10;i++));do
进入循环代码
done
while循环
while CONDITION ; do
循环体
循环控制变量的修正表达式
done
进入条件:CONDITION测试为“真”
退出条件:CONDITION测试为“假”
until循环
until CONDITION ; do
循环体
循环控制变量
done
进入条件:CONDITION测试为“假”
退出条件:CONDITION测试为“真”
#
continue:跳出本次循环,进入下一轮循环
break:跳出整个循环
sleep:程序睡眠一个时间段
死循环:条件为true,永远为死循环
continue语句格式
while [ 条件1 ]; do
满足条件执行这里的代码
if [ 条件2 ]; then
# 跳出当前循环进入下一轮循环
continue
fi
满足条件执行这里的代码
done
break :直接跳出整个循环
while [条件1]; do
执行这里的代码
if [条件2]; then
break
fi
执行这里的代码
done
死循环:如何创建死循环
while true;do
循环体
done
退出方式:某个测试条件满足的时候,让循环体执行break命令就是
while循环的特殊用法(遍历文件的行)
while read VARIABLE;do
循环体
done < /PATH/TO/FILE
意思是:依次读取/PATH/TO/FILE文件中的每一行,且将其赋值给VARIABLE变量
for循环的特殊用法
for((控制变量初始化;条件判断表达式;控制变量修正语句));do
循环体
done
注意:控制变量初始化:仅仅在循环代码开始运行时执行一次
控制变量的修正语句:每轮循环结束会先进行控制变量修正运算,而后再做条件判断
case语句的语法格式
case $变量 in
PAT1)
分支1
;;
PAT2)
分支2
;;
PAT3)
分支3
;;
....
....
....
PATn)
分支n
;;
esac
函数封装
语法一:
function f_name{
函数体
}
语法二:
f_name(){
函数体
}
数组
####声明一个数组
declare -a NAME:声明索引数组(索引是数值)
declare -A NAME:声明关联数组(索引是字符串)
#####数组中元素的赋值方式
(1)一次只赋值一个元素
arr[0]=hello
(2)一次赋值全部元素
arr=(“hello” “nihao” “who” )
(3)只赋值特定元素
arr=([0]=”nihao” [3]=”hello”)
注意:bash支持稀疏格式的数组
(4)read -a arr
#####引用数组中元素的方式:通过索引取值
${arr[1]}
####数组中元素的索引是从0开始的,${arr[1]}表示取的是第二个元素的值
注意:引用时,只给数组名,表示引用下标为0的元素。例如:$arr == ${arr[0]}
###获取数组的长度(数组中元素的个数)
${#arr[*]}
${#arr[@]}
###获取数组中的全部元素
${arr[*]}
${arr[@]}