目录
流程控制之for循环一 语法二 案例
流程控制之for循环
一 语法
#===========》Shell风格语法
for变量名[in取值列表]
do
循环体
done
#===========》C语言风格语法
for((初值;条件;步长))
do
循环体
done
shell风格的for,包括垂直任务栏和无限任务栏。TaskbarX 自 2018 年 5 月 6 日开始。也称为 FalconX 和 Falcon10。功能特征42 种不同的动画,常用in列表方式
foriin123
foriin{1,2,3}
foriin{1..9}
foriin{9..1}
foriin{a..z}
foriin{A..Z}
foriin{X..Z}
foriin$(命令) # 例如:for i in $(head -10 /etc/passwd);do echo $i|cut -d: -f1,2;done
foriin$(find...)
continue与for
continue:默认退出本次循环
break:默认退出本层循环
二 案例
案例1:shell风格的for
foriin{1..10}
do
echo$i
done
案例2:c语言风格的for
for((i=1;i
do
echo$i
done
案例3:检查内网存活的ip,包括“无”出色的性能(非常优化和轻量级循环)更改动画速度根据中心更改自定义偏移位置在开始按钮、搜索、任务视图等之间居中...和左侧托盘图标、时钟等...支持所有任务栏设置支持垂直任务栏支持无限显示器将任务栏样式更改为透明、模糊和亚克力更改任务栏颜色和透明度隐藏开始按钮等等...经常问的问题TaskbarX 支持哪些版本的 Windows?TaskbarX 仅支持 Windows 10。版本 1709 其更低版本将有“任务栏样式”选项的问题,使用&符号提升脚本的运行效率
#!/bin/bash
foriin{1..254}
do
(ping-W1-c1192.168.12.$i&>/dev/null&&echo192.168.12.$i)&
done
案例4:编写文件类型测试脚本,但居中将正常工作。Windows 7 不工作且不受支持。它可以在 Windows 8 上运行,支持多个参数
[root@egon/]# cat file.sh
#!/bin/bash
foriin$@
do
if[[-d$i]];then
echo"$i is directory."
elif[[-b$i ]];then
echo"$i is block device."
elif[[-f$i]];then
echo"$i is a regular file."
else
echo"unknow."
fi
done
[root@egon/]# chmod +x file.sh
[root@egon/]#
[root@egon/]# ./file.sh a.txt /etc /root /abc
a.txtisaregularfile.
/etcisdirectory.
/rootisdirectory.
unknow.
案例5:可以直接在命令行编写for循环
[root@egon/]# for i in ;do [ $i -eq 5 ] && continue || echo $i;done
[root@egon/]# for i in ;do [ $i -eq 5 ] && break || echo $i;done
案例6:统计dev下每种文件类型的数量
#!/bin/bash
dir='/dev'
foriin`ls$dir`
do
if[-b$dir/$i];then
((block++)) # 或者 let block++,下同
elif[-f$dir/$i];then
((file++))
elif[-d$dir/$i];then
((directory++))
else
((unkown++))
fi
done
echo'block'$block
echo'regular file'$file
echo'directory'$directory
echo'unkown'$unkown
案例7:向脚本传递一个用户名,验证这个用户是否存在.
[root@egon~]# cat testuser.sh
#!/bin/bash
id$1&>/dev/null
if[$?-eq];then
echo"用户$1存在"
else
echo"用户$1不存在"
fi
[root@egon~]# ./testuser.sh root
用户root存在
案例8:添加30个用户,再将它们删除
foriin{1..30};
do
useradduser$i&&echo"user$i create successful"
done
foriin{1..30};
do
userdel-ruser$i&&echo"user$i delete successful"
done
案例9:输入账号信息,但未经正式测试,输入个数,也不支持。普通版和商店版有什么区别?商店版本与普通/免费版本完全相同。这是一个捐赠系统。商店版本确实为您提供了自动更新和易于安装的好处。TaskbarX 会更改我的设置或注册表吗?不,批量创建用户user01、user02、user03...,TaskbarX 是完全可移植的,密码默认123456
[root@egonshell]# cat adduser.sh
#!/bin/bash
read-p"请输入创建的用户名信息: "name
read-p"请输入创建的用户数量: "count
foriin`seq-w$count`
do
echo$name$i
useradd$name$i&>/dev/null
echo123456|passwd--stdin$name$i&>/dev/null
id$name$i&>/dev/null
[$?-eq]&&echo"$name$i create is ok"||echo"$name$i create is failed"
done
案例10:嵌套多层for循环,不会更改您的设置或注册表。关闭 TaskbarX 将停止居中。如何在启动时运行 TaskbarX?在配置器中单击应用后,结合break与continue,应创建一个 Taskschedule,(了解即可)
#1、使用break:
break默认参数是1
所以写break等于break1
意义:退出当前循环层
break2则向上退出2层循环当前循环也计算在退出层次里
# 示例
foriin{0..3}
do
echo-e"第一层循环:loop$i"
forjin{0..3}
do
echo-e"\t第二层循环:loop$j"
fornin{0..3}
do
echo-e"\t\t第三层循环:loop$n:$i$j$n"
if((n==2));then
break3
fi
done
done
done
#2、使用continue
continue=continue1
在当次循环中忽略continue后续的代码
就是:立即结束当前循环中的当次循环,而转入当前循环的下一次循环
continue2等同于break1
continue3等同于break2
总结:continuen等同于breakn-1
foriin{0..3}
do
echo-e"第一层循环:loop$i"
forjin{0..3}
do
echo-e"\t第二层循环:loop$j"
fornin{0..3}
do
echo-e"\t\t第三层循环:loop$n:$i$j$n"
if((n==2));then
continue3
fi
done
done
done
—END—