# while true 等同 while : # 读文件为整行读入 num=1 while [ $num -lt 10 ] do echo$num ((num=$num+2)) done ########################### grep a a.txt | whileread a do echo$a done ########################### whileread a do echo$a done < a.txt
}
for循环{
# 读文件已空格分隔 w=`awk -F ":"'{print $1}' c` for d in$w do $d done ########################### for ((i=0;i<${#o[*]};i++)) do echo${o[$i]} done
}
until循环{
# 当command不为0时循环 until command do body done
}
流程控制{
break N # 跳出几层循环 continue N # 跳出几层循环,循环次数不变 continue# 重新循环次数不变
}
}
变量{
A="a b c def"# 将字符串复制给变量 A=`cmd` # 将命令结果赋给变量 A=$(cmd) # 将命令结果赋给变量 eval a=\$$a# 间接调用 i=2&&echo $((i+3)) # 计算后打印新变量结果 i=2&&echo $[i+3] # 计算后打印新变量结果 a=$((2>6?5:8)) # 判断两个值满足条件的赋值给变量 $1$2 $* # 位置参数 *代表所有 env# 查看环境变量 env | grep "name"# 查看定义的环境变量 set# 查看环境变量和本地变量 read name # 输入变量 readonly name # 把name这个变量设置为只读变量,不允许再次设置 readonly# 查看系统存在的只读文件 export name # 变量name由本地升为环境 export name="RedHat"# 直接定义name为环境变量 export Stat$nu=2222 # 变量引用变量赋值 unset name # 变量清除 export -n name # 去掉只读变量 shift# 用于移动位置变量,调整位置变量,使$3的值赋给$2.$2的值赋予$1 name + 0 # 将字符串转换为数字 number " "# 将数字转换成字符串 a='ee';b='a';echo${!b}# 间接引用name变量的值 : ${a="cc"}# 如果a有值则不改变,如果a无值则赋值a变量为cc
数组{
A=(a b c def) # 将变量定义为数組 ${#A[*]}# 数组个数 ${A[*]}# 数组所有元素,大字符串 ${A[@]}# 数组所有元素,类似列表可迭代 ${A[2]}# 脚本的一个参数或数组第三位