b)until 语句
使用 until 循环结构, 当条件不满足是反复执行指定动作, 直到条件满足,
语句:
until 条件表达式
do
动作1
动作2
...
done
示例: 用大小写字母和数字生成一个 5 位的随机密码
#!/bin/bash
n=1
STRING='abdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ013456789'
until [ "$n" -gt "6" ]
do
NUM=$[$RANDOM%${#STRING}]
PASSWD="${PASSWD}${STRING:NUM:1}"
((n++))
done
echo $PASSWD
四, 选择运行流程控制
当脚本接收到操作者某个动作指令, 脚本按指令文件内容选择运行的某段, 这就是流程控制
判断语句也可以达到选择流程控制的目的, 但是效率低, 因此我们选择 case 完成
语法:
case var in
选择指令1|...|...)
动作1
动作2
...
;;
选择指令2|...|...)
动作1
动作2
...
;;
*) #默认动作
动作1
动作2
;;
esac
示例:
1, 运行脚本, 输入 easylee 时, 输出 linux; 输入 linux 时, 输出 easylee, 如果都不是输出 error
vim demo_case.sh
#!/bin/bash
case $1 in
linux|LINUX)
echo easylee
;;
easylee|EASYLEE)
echo linux
;;
*)
echo error
;;
esac
2, 加减计数器
#!/bin/bash
case $2 in
+)
echo$[$1+$3]
;;
-)
echo $[$1-$3]
;;
"*")
echo $[$1*$3]
;;
/)
echo $[$1/$3]
;;
*)
echo "error , please use + - * / for number"
esac