Shell编程之循环语句与常用转义字符及一些小实验
- for循环语句
- 循环控制语句
- seq命令
- 实例:
- while循环
- 实例:
- until循环
- 实例:
- 常用转义字符
- shell脚本多重循环小实验
- 一、99乘法表
- 二、矩形
- 三、直角三角形
- 四、等腰直角三角形
- 五、菱形
for循环语句
- FOR循环语法结构
- FOR循环可以结合条件判断和流程控制语句
- do …done 循环体
- 循环体里可以是命令集合,再加上条件判断以及流程控制
循环控制语句
循环体: do…done之间的内容
- continue:继续;表示循环体内下面的代码不执行,重新开始下一次循环
- break:打断;马上停止执行本次循环,执行循环体后面的代码
- exit:表示直接跳出程序
for 变量名 in 取值列表
do 命令序列
done
seq命令
- 使用 seq 命令,打印出5个人hello
#!/bin/bashfor i in `seq 5`
do
echo hello
done
- seq 命令给变量
#!/bin/bash
a=10
for i in `seq $a`
do
echo hello
done
实例:
- 提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和。
#!/bin/bashsum=0 #定义一个变量
read -p "请输入一个0-100之间的整数:" a #使用read命令获取输入内容为变量a赋值
for ((i=1;i<=$a;i++)) #for循环,i=1,循环次数小于等于变量a的值,i每次循环加1
dosum=$[$sum + $i] #输出循环
doneecho "$sum"
- 求1到该数的奇数和,偶数和
#!/bin/bashsum=0
jum=0
read -p "请输入一个0-100之间的整数:" a
for ((i=0;i<=$a;i+=2))
dosum=$[$sum + $i]
doneecho "1到$a之间的偶数和为$sum"for ((b=1;b<=$a;b+=2))
dojum=$[jum + $b]
done
echo "1到$a之间的奇数和为$jum"
- 批量添加用户
用户名存放在users.txt文件中,每行一个
初始密码均为123456
验证
#!/bin/basha=`cat users.txt` #反撇号直接取值
for i in $a
do
useradd $i
echo "123456" | passwd --stdin $i
done
- 根据IP地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个
使用ping命令检查各主机的连通性
这题基本和上题一样的
#!/bin/bashi=`cat /opt/ipadds.txt`
for a in $i
do
ping -c3 -W2 $a > /dev/null
if [ $? -eq 0 ]
then
echo "$a:up"
else
echo "$a:down"
fi
done
while循环
- 条件为假就进入循环;条件为真就退出循环
while 条件测试操作
do命令序列
done
实例:
- 计算从1到100所有整数的和
#!/bin/bashi=1
sum=0
while [ $i -le 100 ]do
let sum=$[$sum + $i ]let i++done
echo "1-100之间所有整数和为$sum"
- 计算从1到100所有偶数的和
#!/bin/bashi=1
sum=0
while [ $i -le 100 ]
do
if [ $((i%2)) -eq 0 ];then
let sum=$i+$sum
fi
let i++
done
echo $sum
- 猜数字
#!/bin/bashn=30
while true
doread -p "请输入一个数字:" num
if [ $num -eq $n ];then
echo "你猜对了"
break
elif [ $num -gt $n ];then
echo "你猜大了"elif [ $num -lt $n ];then
echo "你猜小了"
fi
done
until循环
重复测试某个条件,只要条件不成立则反复循环
until 条件测试操作
do 命令序列
done
#!/bin/bashsum=0
i=1
until [ $i -gt 50 ]
dosum=$[$i+$sum]
let i++
done
echo "1-50的和为$sum"
实例:
- 计算1~50的和
常用转义字符
echo -n 表示不换行输出echo -e 输出转义字符,将转义后的内容输出到屏幕上常用的转义字符如下: \b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。\n 换行,被输出的字符从"\n"处开始另起一行。 \f 换行,但是换行后的新行的开头位置连接着上一行的行尾;\v 与\f相同;\t 转以后表示插入tab,即横向制表符;\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖\\ 表示插入"\"本身;
shell脚本多重循环小实验
一、99乘法表
#!/bin/bashfor ((a=1;a<=9;a++))
dofor ((b=1;b<=$a;b++))doc=$[$a*$b]echo -n -e "$a*$b=$c\t"done
echo ""done
二、矩形
#!/bin/bashfor ((a=1;a<=5;a++))
dofor ((b=1;b<=10;b++))doecho -n "*"doneecho ""
done
三、直角三角形
#!/bin/bash
for ((a=1;a<=9;a++))
dofor ((b=1;b<=$a;b++))do echo -n "*"doneecho ""
done
四、等腰直角三角形
- 算法计算 $a*2-1
#!/bin/bash
for ((a=1;a<=9;a++))
dofor ((b=9;b>=$a;b--))doecho -n " "donefor ((c=1;c<=$[$a*2-1];c++))doecho -n "*" doneecho ""
done
五、菱形
#!/bin/bash
for ((a=1;a<=9;a++))
dofor ((b=9;b>=$a;b--))doecho -n " "donefor ((c=1;c<=$[$a*2-1];c++)) doecho -n "*"done
echo ""
donefor ((d=1;d<=10;d++))
dofor ((e=2;e<=$d;e++))doecho -n " "donefor ((f=10;f>=$d;f--)) do echo -n "*"donefor ((g=9;g>=$d;g--))doecho -n "*"doneecho ""
done
Shell编程之循环语句与常用转义字符及一些小实验相关推荐
- Shell编程之循环语句(详细讲解以及脚本案例)
Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...
- shell编程之循环语句
shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...
- 【Shell编程之循环语句与函数】
目录 一.for循环语句 示例: 示例1 示例2 示例3 二.跳出循环 举例 转义符 三.while 语句的结构 示例: 四.until语句的结构 1.基本格式 五.seq命令 一.for循环语句 读 ...
- Shell编程之循环语句(for、while、until)
文章目录 1.for语句的结构 示例1 示例2 示例3 示例4 2.while语句的结构 示例1 3.until语句的结构 示例1 1.for语句的结构 总结: 条件需要你预先已经知道会出现哪些情况, ...
- Shell编程之条件语句(if语句,case分支语句)
Shell编程之条件语句 一.条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if语句 单分支结构 双分支结构 多分支结构 三.case分支语句 一.条 ...
- Linux Shell 脚本之循环语句
目录 Shell 脚本之循环语句 一.echo 二.date 三.for 四.while 五.until 六.continue 和 break Shell 脚本之循环语句 一.echo echo - ...
- Shell脚本for循环语句应用
记录:430 场景:Shell脚本for循环语句应用. 版本:CentOS Linux release 7.9.2009. 1.for循环常用格式 1.1格式:for(;;) for((express ...
- (四)shell编程之循环结构
shell编程之循环结构 #本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一.for循环语句 关键词:爱的魔力转圈圈
- shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)
文章目录 shell编程之条件语句 条件测试 test命令 整数值测试 free -m 提供了更简洁的查看系统内存使用情况: 字符串和逻辑测试 字符串 逻辑测试 一元运算符,二元运算符和三元运算符 i ...
最新文章
- 这位图灵奖得主大佬,你可知道?
- Python通过一个网页地址获得网页标题Title
- animate.css动画抖动,Animate.css抖动效果每次都不工作
- [css] 举例说明css有哪些简写的属性和属性值?
- 用上Latex实现编辑伪代码
- 首个谷歌TensorFlow安全风险被腾讯找到:攻击成本低、迷惑性强
- linux系统交换空间,Linux中如何使用和管理交换空间
- nyoj--2--括号配对
- MAC OS下使用JAVE将amr转mp3的坑
- Git 笔记:廖雪峰Git 教程总结
- java-ActiveXComponent调用com组件
- 关于Protel 2004 绘制电路原理图
- error: <class ‘xmlrpclib.Fault‘>, <Fault 92: “CANT_REREAD: The directory named as part of the path /
- 移动硬盘(USB3.0)1TB 在自己电脑上突然识别不了
- 计算机c盘空间满了应该怎么办,C盘空间满了怎么办?我来教你你如何解决
- 手机端网页尺寸html,手机端网页设计尺寸_html/css_WEB-ITnose
- 沃云服务器上部署web项目(亲试)!
- 有约束多变量寻优方法——内点罚函数法
- oracle查表空间剩余,查看Oracle表空间剩余
- java基于ssm+vue+elementui的足球联赛会报名系统
热门文章
- vista常见故障及解决
- 绝地求生服务器在线人数,《绝地求生:大逃杀》同时在线人数突破165万 官方就服务器问题向玩家致歉...
- 13个球一个天平,现知道只有一个和其他的重量不同,问怎样称才能用3次就找到那个球?
- python:sine之舞
- java 农历 天文,“中国天眼”的新发现 终结天文界持续多年的一场争论
- android 气泡,Android Q 气泡
- java 气泡图_图表气泡图/图表的大小图例
- iMovie剪辑技巧一
- 映美Jolimark CFP-535W 打印机驱动
- libevent configure: error: openssl is a must but can not be found.error while loading shared librari