桐乡 网站建设,邢台网站开发,桂林哪里做网站,WordPress无法取消置顶文章目录 一.for循环
1.1.基本格式
1.2.类C语言格式
二.while循环
2.1.基本格式
2.2.死循环语句
三.跳出循环
3.1.continue跳出循环
3.2.break跳出循环
四.常用循环
4.1.循环打印九九乘法表
4.2.循环ping测试某个网段网络连通性
4.3.while死循环实现猜数字游戏
4.4.数…目录 一.for循环
1.1.基本格式
1.2.类C语言格式
二.while循环
2.1.基本格式
2.2.死循环语句
三.跳出循环
3.1.continue跳出循环
3.2.break跳出循环
四.常用循环
4.1.循环打印九九乘法表
4.2.循环ping测试某个网段网络连通性
4.3.while死循环实现猜数字游戏
4.4.数字累加脚本(1-100) 一.for循环
1.1.基本格式 for 变量名称(注意是名称不是变量$等) [ in 名称范围 ] (可以不写) do 执行内容 若满足循环则做什么动作 done for循环结束标志 练习
vim sb.sh #创建脚本sb.sh
脚本内容:
#!/bin/bash
for i in {1..10} #for循环10次第一次i1第二次i2以此类推直到i10
do
echo $i #循环动作每次输出$i
done #for语句结束标志bash sb.sh #调用shell执行脚本sb.sh 1.2.类C语言格式 for (( 表达式1 表达式2表达式3 )) do 执行内容 #若满足循环则做什么动作 done #for循环结束标志 表达式1定义变量并赋值 表达式2决定是否循环 表达式3决定循环变量如何改变决定循环什么时候结束 练习
vim kk.sh #创建脚本kk.sh
脚本内容
#!/bin/bash
for(( i0;i10;i )) #定义for循环i变量初始值为0循环条件i小于等于10每循环一次i自加1
do
echo $i #for循环每循环一次执行一次输出$i
done #for语句结束标志bash kk.sh #调用shell执行脚本二.while循环
2.1.基本格式 用于不知道循环次数需要主动结束循环或达到条件结束循环。 while [ 判断条件] 使用while循环满足条件执行do不满足不执行 do 执行动作 while循环执行动作 done while循环结束标志 练习
vim ll.sh #创建脚本ll.sh
脚本内容
#!/bin/bash
i0
while [ $i -le 10 ] #变量i小于等于10时执行while循环
do
echo $i #循环执行内容每循环一次打印$i
let i #每循环一次计算一次i 即i自己1
done #while语句结束标志 bash ll.sh #调用bash执行ll.sh脚本2.2.死循环语句 ①while [1 -eq 1] #判断条件写一个永久为真的条件 do # 一直执行do内的命令 done ②while true #直接写判断条件为真 do #一直执行do内的命令 done ③while : #判断条件为冒号也表示死循环 do # 一直执行do内的命令 done #while语句结束标志 三.跳出循环
3.1.continue跳出循环
表示满足continue条件时跳出循环但是不影响后续循环执行
vim qq.sh #创建脚本qq.sh
脚本内容
#/bin/bash
for i in {1..5} #for循环5次从i1开始到i5
do
if [ $i -eq 3 ] #if判断语句若$1等于3则执行then的内容
then
continue #当$i4时跳出循环但不影响后面循环
fi #结束if语句
echo $i #没执行一次for循环输出一次$i
done #for循环结束语句bash qq.sh #调用shell执行脚本3.2.break跳出循环 在某个循环中遇到break直接结束此次循环但是不影响外边嵌套的循环。 break [数字] 结束数字中的几次循环若为2则结束自己所在循环和外边嵌套的一层循环若为3则结束自己所在循环和外边嵌套的2层循环 举例
vim o.sh #创建o.sh脚本
脚本内容:
#!/bin/bash
for j in {1..3} #第一层for循环j1,2,3各执行一次do的内容
do #第一层for循环的执行内容for i in {1..5} #第二层for循环i1,2,3,4,5各执行一次do的内容do #第二层for循环的执行内容 if [ $i -eq 3 ] #第二层for循环中添加的if判断语句当$i3是执行then内容then break #第二层for循环判断语句执行命令break结束循环fi #if语句结束echo $i #第二层for循环语句执行每循环一次输出$idone #第二层for循环语句结束标志
done #第一层for循环语句结束标志bash o.sh #调用bash执行o.sh脚本
执行结果第二层执行在$i3是结束了循环所以只能输出1和2
第一层for循环是循环3次所以输出了3次。
1
2
1
2
1
2 四.常用循环
4.1.循环打印九九乘法表 ①第一步for循环打印一行9个*号 ②第二步再添加一个for循环打印一个9行9列的*号正方形 ②第三步将*号正方形斜砍一般形成9*9乘法表的基本格式 ③第四步将*号9*9乘法表格式用乘法算式替换 第一步
vim jj.sh #创建jj.sh脚本
脚本内容:
#!/bin/bash
for i in {1..9} #for循环9次从i1开始
do
echo -n * #每循环一次打印一个*echo -n参数表示不换行
done #此for循环语句结束
bash jj.sh #调用shell执行脚本
执行结果
*********第二步:
vim jj.sh #编辑jj.sh脚本
脚本内容
#!/bin/bash
for j in {1..9} #添加打印列循环循环9次从j1开始
do #j循环时做do中的内容 for i in {1..9} #第一步for循环内容不变doecho -n *done
echo #列循环每循环一次打印一行空格进行换行
done #列循环for语句结束标志
bash jj.sh #调用shell执行脚本
执行结果
*********
*********
*********
*********
*********
*********
*********
*********
*********第三步
vim jj.sh #编辑jj.sh脚本
脚本内容
#!/bin/bash
for j in {1..9} #列循环内容不变
do for i in seq $j #修改行循环i的取值范围为展开变量j即当j1时i取值只有1所以循环一次。当 j2时i取值为1和2所以i1和i2各循环一次循环2次。以此类推到j9doecho -n *done
echo
done
bash jj.sh #调用shell执行脚本
执行结果
*
**
***
****
*****
******
*******
********
*********第四步
vim jj.sh #编辑jj.sh脚本
脚本内容
#!/bin/bash
for j in {1..9} #列循环内容不变
dofor i in seq $jdoecho -ne $j*$i$[ $j*$i ]\t #行输出内容修改为9*9算式和结果。$[ ]表示计算里面的正整数结果echo -e参数表示调用转义符\t表示制表符即循环时输出一个tab键done
echo
done
bash jj.sh #调用shell执行脚本
输出结果
1*11
2*12 2*24
3*13 3*26 3*39
4*14 4*28 4*312 4*416
5*15 5*210 5*315 5*420 5*525
6*16 6*212 6*318 6*424 6*530 6*636
7*17 7*214 7*321 7*428 7*535 7*642 7*749
8*18 8*216 8*324 8*432 8*540 8*648 8*756 8*864
9*19 9*218 9*327 9*436 9*545 9*654 9*763 9*872 9*981 4.2.循环ping测试某个网段网络连通性 需求测试用户输入的某个32位网段是否可以ping通且若可以ping通将此ip输出到文件host.txt中。 ①第一步读取用户输入的32位网段。 ②使用for循环生成用户输入网段的所有ip。 ③使用ping命令在循环中测试用户输入网段内所有ip注意指定ping包个数和超时结束时间否则一直ping。 ④将循环检查网络连通性放入后台执行。 vim p.sh #创建p.sh脚本
脚本内容
#!/bin/bash
read -p 请输入需要测试的网段格式为(192.168.47.) ip #读取用户输入内容为变量ip
for i in {1..254} #for循环254次从i1开始
do
{ #将{}内容当成一个整体
ping -c2 -w2 $ip$i /dev/null #指定ping包为2个超时结束时间为2秒且将产生的内容全部放入null垃圾桶中符号表示错误输出也放入null垃圾桶中if [ $? -eq 0 ] #if条件判断如果上一个循环执行的命令是正确的则$返回0若等于0执行then的内容thenecho $ip$i is online #if条件成立执行打印echo $ip$i host.txt #将if条件成立的ip追加到host.txt文件中elseecho $ip$i is offline #if添加判断不成立执行打印fi
} #将循环成立的内容放入后台执行
done
wait #执行结束不等待直接退出 4.3.while死循环实现猜数字游戏 需求生成随机1-100的价格给用户猜测直到猜对结束游戏并统计用户猜对猜了几次。 ①第一步生成一个随机1-100数字 ②第二步使用while循环写一个死循环直到用户猜对才结束循环 ③在执行循环的过程中统计循环执行次数并输出 vim e.sh #创建脚本e.sh
脚本内容
#!/bin/bash
numecho $[ RANDOM%1001 ] #$[RANDOM]是一个0-32767的随机数%1001除100取余1表示生成0-100随机数
time0 #定义猜对次数变量time初始值为0
while true #生成while死循环
do #循环动作为do内的内容
let time #每循环一次time变量自加1
read -p 请输入您猜测的数字范围(1-100) user #读取用户输入的内容为变量userif [ $user -eq $num ] #条件判断分支1如果用户输入等于随机生成执行then动作then echo 您猜对了您一共猜测了$time次 #if分支1条件成立执行输出break #if分支1条件成立则结束本次循环elif [ $user -gt $num ] #条件判断分支2如果用户输入大于随机生成执行本次then动作thenecho 您猜大了请往小猜 #条件判断分支2成立提示用户猜大了elif [ $user -lt $num ] #条件判断分支3如果用户输入小于随机生成执行本次then动作then echo 您猜小了请往大猜 #条件判断分支3成立提示用户猜小了fi #if语句结束
donebash e.sh #调用bash执行脚本
执行结果
请输入您猜测的数字范围(1-100)50
您猜小了请往大猜
请输入您猜测的数字范围(1-100)60
您猜小了请往大猜
请输入您猜测的数字范围(1-100)70
您猜大了请往小猜
请输入您猜测的数字范围(1-100)65
您猜大了请往小猜
请输入您猜测的数字范围(1-100)62
您猜小了请往大猜
请输入您猜测的数字范围(1-100)63
恭喜您猜对了您一共猜了6次 4.4.数字累加脚本(1-100) 需求编写脚本实现计算从1加到100的值 ①累加需要用到循环已知循环次数时使用for循环 ②也可以使用while循环达到累加条件时结束循环 vim m.sh #创建m.sh脚本
脚本内容
sum0 #定义变量sum初始值为0
for i in {1..100} #for循环 i取值从1到100
do
sum$[ isum ] #每次循环内容计算变量isum的值赋值给sum
done #for语句结束标志
echo 1-100累加值为$sum #循环结束后输出内容bash m.sh #调用shell执行脚本
执行结果
1-100累加值为5050