记录 shell学习过程(6)while 以及 while的嵌套 以及 until
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的更多相关文章
- 记录 shell学习过程(10 ) shell 对文件的操作
0.sed 常用内部命令 a 在匹配后面添加 i 在匹配前面添加 p 打印 d 删除 s 查找替换 c 更改 y 转换 N D P 下面用a来演示 1.sed 'a 追加内容' 文件 # sed 'a ...
- 记录 shell学习过程(9)正则表达式 转自树明聊运维
正则表达式 正则表达式介绍 特殊字符 POSIX特殊字符 一.正则表达式介绍 正则表达式是一种文本模式匹配,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符") ...
- 记录 shell学习过程(7) case 以及 shell 的特殊变量
case 语法 read -p "num:" n case $n in ) echo haha ;; ) echo hehe ;; ) echo heiehi ;; *) echo ...
- 记录 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 ...
- 记录 shell学习过程(11 ) shell 对输出流的处理
语法 awk [options] [BEGIN] {program} [END] [file] 常用命令选项 -F fs 指定描绘一行中数据字段的文件分隔符 默认为空格 -f file 指定读取程序 ...
- 记录 shell学习过程(8)函数
start () { echo "Apache start ...... [OK]" #return 0 可以写一个返回值,比如执行成功返回 0 } stop () { echo ...
- 记录 shell学习过程(5)continue break
1.continue ;i<;i++)) do ];then continue fi echo $i done # ./continue.sh12346789 2.break ;i<;i+ ...
- 记录 shell学习过程(3) if 的格式
] #-e 为检测目录或文件是否存在 !为取反 then mkdir -v /tmp/ echo 'ok' fi if else if [ $USER == 'root' ] then echo 'h ...
- 记录 shell学习过程(2) read的用法
echo -n "login:"read username #read后面直接使用一个变量用于接收输入的数据 echo -n "password:"read ...
随机推荐
- oracle分组后取最新的记录
使用Group By来实现取最新记录,需要注意一个问题,如果最大时间相同的数据都会被取出来. PS:即使数据字段类型是timestamp,也会登录相同的时间的数据. select A.* from A ...
- maven第一次创建项目太慢解决方法
问题: 第一次用maven创建项目的时候,因为本地仓库中没有jar包,需要从中央仓库下载,所以会比较慢 解决方法: 因为从中央仓库下载默认使用的国外的镜像下载,速度比较慢,我们可以把镜像修改为从阿里云 ...
- C语言简单编译预处理-笔记
预处理指令 所谓预处理,是指,在编译之前对程序源码进行初步的转换,产生新的源代码提供给编译器.预处理时主要完成:包含其他源文件,定义宏,根据条件决定编译时是否包含某些代码(>防止重复包含某些文件 ...
- 第7章.字符串、String类和StringBuilder类
参考链接: https://www.runoob.com/csharp/csharp-string.html https://www.cnblogs.com/cang12138/p/7323709.h ...
- session 控制
session 控制 beego 内置了 session 模块,目前 session 模块支持的后端引擎包括 memory.cookie.file.mysql.redis.couchbase.memc ...
- phpcmsv9 后台统计编辑发稿数量
直切正题: 每个人,每个栏目,发稿数量统计 SELECT a.realname AS 姓名, c.catname AS 栏目名称, count(1) AS 发稿量FROM v9_news bz, v9 ...
- [转载]Ubuntu 使用Compiz配置炫酷3D桌面
原文地址 个人引言: 这个Compiz使用与我的这篇Blog:打摆不顺利?是你没看这篇!相互有联系.这个Compiz是打摆工具之一,可以把打摆窗口调成透明,这样机房监控拍下来的屏幕会是打摆窗口下面的某 ...
- 关于MySQL数据库中null的那些事
在mysql数据库中,null是一个经常出现的情况,关于mysql中的null,有哪些注意事项呢?下面简单总结归纳下,后续会不断补充. 1. is null 首先判断数据库中某一列的值是否为null, ...
- 【你不知道的javaScript 中卷 笔记2】javaScript中的类型转换
1.1 对象内部属性 [[Class]] 常见的原生函数: String() Number() Boolean() Array() Object() Function() RegExp() Date( ...
- BZOJ5137&&lg4081(广义后缀自动机,set启发式合并)
BZOJ5137&&lg4081(广义后缀自动机,set启发式合并) 题面 自己找去 HINT 给定多个文本串,让你查询每个文本串中有多少个本质不同的子串且这个子串只出现在当前这个文本 ...