linux(八)—shell流程控制 if,for,while,_until,_random的使用

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值