1:流程控制语法 if
# 流程控制
if 判断条件
then
执行分支1
elif 条件判断
then
执行分支2
else
执行分支2
fi
# 例如:判断 1是否等于1
if [ 1 -eq 1 ]
then
echo "Yes"
else
echo "No"
fi
# 判断A值 是否大于1 还是大于4 否者输出错误
read -p "请输入数字:" A
if [ $A -gt 1 ]
then
echo "A 大于 1"
elif [ $A -lt 4 ]
then
echo "A小于4"
else
echo "错误"
2:for 循环语句
# for 循环语句
for 变量 in {list}
do
执行语句
done
# 写成一行
for 变量 in {list}; do 执行语句1; 执行语句2 done
例如:打印 1-10的数字
for i in {1..10}
do
echo $i;
done
for i in {1..10};do echo $i; done
# 打印1-20 间隔2个单位打印数字
for i in {1..20..+2};do echo $i; done
# 打印 20 -0 的偶数
for i in {20..0..-2};do echo $i; done
3:while 循环
# while 循环的语法
while 条件判断
do
执行语句1;
执行语句2
done
# 例如 当B小于5时,则停止输出
while [ $B -lt 5 ];
do
B= $(($B+1));
done
4:until循环 知道....才开始执行 与while刚好相反
# 语法
until 条件判断 为false则继续执行
do
执行语句1;
执行语句2
done
# 例如:当k值=6时执行输出世界真好
A=0
for i {1..5}
do
A=$($A+1);
done
until [ $A -eq 6]
do
echo "世界真好";
done
5:随机数
# 如何生成随机
使用 RANDOM
#使用方式
# 输出一个随机数
echo $RANDOM
# 输出一个0-1之间的随机数
echo $[ $RANDOM%2 ]
# 输出0-100的随机数
echo $[ $RANDOM%101 ]
# 输出1-50的随机数
echo $[ $RANDOM%50+1]
案例:使用脚本编写138开头的100个手机号 并写入一个文件 脚本文件如下
#!/bin/env bash
# Author:lvdqiang
# Desc:创建100个以131开头的电话号码
# Using:chmod +x /home/shell/test05.sh 执行 /home/shell/test05.sh
# Update:2021-11-12 14:41
# 创建电话号文件
cd /home/shell
if [ -s /home/shell/phone.txt ]
then
# 判断文件是否有内容 有则清空文件内容
echo "测试进入清理文件内容"
cat /dev/null /home/shell/phone.txt
else
# 创建文件
touch phone.txt
fi
# 定义一个131开始的变量
PH="131"
for p in {1..101}
do
# 生成电话号码
ONE=$[ $RANDOM%10 ]
for i in {1..7}
do
ONE=$ONE$[ $RANDOM%10 ];
done
PHONE=$PH$ONE
echo $PHONE|tee -a /home/shell/phone.txt
done