记录 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 ...
随机推荐
- .net Core3.0 +Nlog+Sqlserver
1.下载Nlog.Nlog.Web.AspNetCore包 2.添加NLog.config xml文件 资料https://github.com/NLog/NLog/wiki/Database-ta ...
- 快捷使用 Iterm2 连接SSH ( HTTP代理 )
1,配置iterm2 > Preferences.. > Profiles > 填写:name : 别名 : Command : expect /Users/jerryxu/wwwr ...
- js打印前几天或后几天的日期
<script language="JavaScript" type="text/javascript">function dater(sj){ v ...
- 【Unity|C#】基础篇(1)——基础入门
[学习资料] <C#图解教程>(第2~12章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baid ...
- beautifulsoup4进阶学习笔记
requests库是可以找到想要的东西,基本上几行代码就搞定,但是进一步把有用的内容提取出来变成自己想要的格式来方便后续进行数据分析 正则表达式提取的话,需要一些时间成本,这个可以每天积累一点. 这里 ...
- 0012 基于DRF框架开发(04 序列化器的字段与选项)
1 常用字段类型 字段 构造方式 BooleanField BooleanField() NullBooleanField NullBooleanField() CharField CharField ...
- CMS系统
CMS是Content Management System的缩写,意为"内容管理系统" 对于内容管理,业界还没有一个统一的定义,不同的机构有不同的理解: 内容管理系统是企业信息化建 ...
- 10.3 c++ STL 初步
#include<Windows.h>#include<iostream>#include<algorithm> // sort swap min ma ...
- [十二省联考2019] 异或粽子 - 可持久化Trie,堆
求 \(n\) 元数列的 \(k\) 个不同的子区间使得各个子区间异或和之和最大. Solution (差点又看错题了) 做个前缀和,于是转化成求序列异或和最大的 \(k\) 个数对 建一棵可持久化 ...
- Linux内核0.11代码阅读(转)
最近决定开始阅读Linux 0.11的源代码. 学习Linux操作系统的核心概念最好的方法莫过于阅读源代码.而Linux当前最新的源代码包已经有70MB左右,代码十分庞大,要想深入阅读十分困难.而Li ...