while中的5种条件

1.数学比较

 read -p "Num :" num1
while [ $num1 -gt ]
do
echo 'greater'
sleep done

2.字符串比较

 read -p "enter the password:" pw
while [ $pw != password ]
do
read -p "enter the password:" pw done
echo 'welcome'

3.检测文件是否存在

 while [ ! -e /tmp/testfolder  ]
do
echo '/tmp/testfolder not exist'
sleep
done

4.多个条件判断

 read -p "money:" money
read -p "car:" car
read -p "house:" house while [ $money -lt ] || [ $car -lt ] || [ $house -lt ]
do
echo 'no way!'
read -p "money:" money
read -p "car:" car
read -p "house:" house
done
echo 'Ok!'

5.赋值判断

 read -p "char:" ch

 while [ $ch != 'q' ]
do
echo "char is : $ch"
read -p "char:" ch
done
echo 'you just press q'

6.类似于for的写法

 i=
while [ $i -lt ]
do
echo $i
i=$((i+))
done

7.while使用break还有continue的时候需要注意累加的顺序

 i=
while [ $i -lt ]
do
echo $i
i=$(( i+ ))
if [ $i -eq ];then
continue
fi
#i=$(( i+ )) continue时先累加,break时后累加
done

8.九九乘法表

 n=
while [ $n -lt ]
do
for (( m=;m<=$n;m++ )) #此处 m<=$n 如果写成 m<10 输出的样式会有很大的不同
do
echo -n -e "$m x $n = $((n*m))\t"
done
echo
n=$((n+))
done

如果将上面的for换成while 即双重while的嵌套

 n=
while [ $n -lt ]
do
#for (( m=;m<=$n;m++ ))
# do
m=
while [ $m -lt $n ];do echo -n -e "$m x $n = $((n*m))\t" m=$(($m+))
done
echo
n=$((n+))
done

9.读取 passwd中的内容

 while read i;do
echo $i
done < /etc/passwd

10.读取 passwd中的内容 仅显示第一列 第三列 第五列

 IFS=$":"
while read f1 f2 f3 f4 f5 f6 f7;do
echo "$f1 $f3 $f5" done < /etc/passwd

11.until

 until和while的区别就是 until是条件为假才执行

打印 10-20

 i=
until [ $i -gt ];do
echo $i
i=$((i+))
done

记录 shell学习过程(6)while 以及 while的嵌套 以及 until的更多相关文章

  1. 记录 shell学习过程(10 ) shell 对文件的操作

    0.sed 常用内部命令 a 在匹配后面添加 i 在匹配前面添加 p 打印 d 删除 s 查找替换 c 更改 y 转换 N D P 下面用a来演示 1.sed 'a 追加内容' 文件 # sed 'a ...

  2. 记录 shell学习过程(9)正则表达式 转自树明聊运维

    正则表达式 正则表达式介绍 特殊字符 POSIX特殊字符 一.正则表达式介绍 正则表达式是一种文本模式匹配,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符") ...

  3. 记录 shell学习过程(7) case 以及 shell 的特殊变量

    case 语法 read -p "num:" n case $n in ) echo haha ;; ) echo hehe ;; ) echo heiehi ;; *) echo ...

  4. 记录 shell学习过程(4)for 循环

    1. for in ` #seq 生成从1到10 如果生成从10到1则写作 seq 10 -1 1 do echo $i done for in 也可以循环出字符串 for i in where is ...

  5. 记录 shell学习过程(11 ) shell 对输出流的处理

    语法 awk  [options] [BEGIN] {program} [END] [file] 常用命令选项 -F fs 指定描绘一行中数据字段的文件分隔符 默认为空格 -f file 指定读取程序 ...

  6. 记录 shell学习过程(8)函数

    start () { echo "Apache start ...... [OK]" #return 0 可以写一个返回值,比如执行成功返回 0 } stop () { echo ...

  7. 记录 shell学习过程(5)continue break

    1.continue ;i<;i++)) do ];then continue fi echo $i done # ./continue.sh12346789 2.break ;i<;i+ ...

  8. 记录 shell学习过程(3) if 的格式

    ] #-e 为检测目录或文件是否存在 !为取反 then mkdir -v /tmp/ echo 'ok' fi if else if [ $USER == 'root' ] then echo 'h ...

  9. 记录 shell学习过程(2) read的用法

    echo -n "login:"read username  #read后面直接使用一个变量用于接收输入的数据 echo -n "password:"read ...

随机推荐

  1. [Contract] Solidity 判断 mapping 值的存在

    比如 mapping(address => uint) tester,只需要判断 mapping 是否为默认值 0, tester[msg.sender] == 0 "You can ...

  2. python 复习 day1

    import timeimport json # 二:嵌套取值操作students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]] ...

  3. nunjucks如何使用?

    基本的使用 const nunjucks = require('nunjucks') // nunjucks.configure({ autoescape: true }); // const res ...

  4. Java第五节课总结

    继承是对现实生活中的“分类”概念的一种模拟. 通过surper调用的基类构造方法,必须是子类构造方法中的第一个语句. 构造函数(constructor)是一种特殊的方法 .主要用来在创建对象时初始化对 ...

  5. mysql数据库环境配置及部分问题

    亲身经历了MySQL初学者的痛苦,把主要问题和解决方法整理一下. 一.解压版环境配置 1.把压缩包解压到某盘符下. 解压后在类似“E:\mysql-5.7.22-winx64”这个文件夹中可以看到以上 ...

  6. 谷歌F12获取接口信息

  7. js image to base64 摘录

    //传入图片路径,返回base64 //用处,由于在新增时,使用的是base64的格式,为了统一,在编辑时,也将图片转为base64,以便于统一处理 /* 使用: 因为图像处理存在一定的延时,所以通过 ...

  8. 已知float后几位,谋几位保留

    设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式____. #include "common.h" #includ ...

  9. Docker最全教程——从理论到实战(十八)

    前言 VS Code是一个年轻的编辑器,但是确实是非常犀利.通过本篇,老司机带你使用VS Code玩转Docker——相信阅读本篇之后,无论是初学者还是老手,都可以非常方便的玩转Docker了!所谓是 ...

  10. Error in nextTick: "TypeError: Cannot set property 'xxx' of undefined"解决办法

    vue项目在控制台中报这个错误时,当看到nextTick词时想到vue的$nextTick()方法 Vue 在更新 DOM 时是异步执行的.只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件 ...