shell - for 循环
for 循环语句
for var in [ 取值列表 ]
do echo $var
done例:
for i in 1 2 3 4 5
for j in {1..100}
# ls -l /etc/|wc -l
# 转义字符
for var in file1 file\'2 I\'s # 三次,斜杠用来转义
# 从变量中取值
list="file1 file2 file3"
for i in $list
# 从命令中取值
for i in 'cat /etc/hosts'
do
# for 循环可以自定义shell分隔符,默认以空格作为分隔。IFS来自定义
1. 冒号 IFS=:
2. 冒号,封号,双引号 IFS=:;"
3. 换行符 IFS=$'\n'#!/usr/bin/bash
IFS=$'\n'
for i in `cat /etc/hosts`
do # echo $iecho $i|grep "root" # 输出包含root的
done
# 变量的自增和自减 C写法
for ((i=0;i<10;i++))
docommands
done
for (( a=1,b=9;a<10;a++,b--))
doecho num is $a $b
done
# 批量创建用户
#!/user/bin/bash
for i in $( cat user.txt )
douser=$( echo $i|awk -F : '{print $1}' )pass=$( echo $i|awk -F : '{print $2}' )echo $user 密码是 $pass id $user &>/dev/nullif [ $? -eq 0 ];thenecho " alreade exists "elseuseradd $userecho "$pass"|passwd --stdin $userfi
done
# 批量创建用户,用户输入数量和前缀, bax,10 表示从1到10
1. 批量 循环
2. 用户输入
#!/usr/bin/bashread -p " please enter 前缀:" pre
read -p "please enter number: " numfor i in $(seq $num)
do user=$pre$iid $user &>/dev/nullif [ $? -eq 0 ];thenecho "already exist"elseadduser $user ccccecho " add successfully"fi
done
批量创建用户,输入前缀(不能为空),输入用户数量(必须是整数) ,该脚本只能root 用户执行
# 只能root 用户运行该脚本
if [ ! $UID -eq 0 -o $user == "root" ];thenecho " 没有执行权限"exit
fi
read -p "前缀:" qz
read -p "用户数量" num
# 判断前缀不能为空,数量必须为整数
if [ -z $qz ];thenecho " 不能为空"exit
fi
if [[ ! $num=~[0-9]+$ ]];thenecho "请输入整数"exit
fi
for i in $(seq $num)
douser=$qz$iid $user &>/dev/nullif [ $? -eq 0 ];thenecho "already exists"elseuseradd $userecho "create successfully"fi
done
# 密码写入到特定的文件中
echo "$pass" | passwd --stdin $user &>/dev/null
# 随机密码
$((RANDOM))|md5sum|cut 2-8
echo "用户:$user 密码: $pass" >> /tmp/user.log
# 删除用户命令
userdel -r $user
批量探测主机存活状态 172.16.1.{1..254}
1.需要使用循环,254次
2. ping命令探测主机#!/usr/bin/bash
for i in {1..254}
do# 并发效果{ping -c 1 -W 1 172.16.1.$i &>/dev/nullrs=$?echo $rsif [ $rs -eq 0 ];thenecho "172.16.1.$i is ok" >> /tmp/ip.logelseecho "172.16.1.$i ping不通" fi} &
done# wait等上面的全部结束以后,在输出下面这一行waitecho "ip is down"# 注意并发的使用!!!# 开始测试端口 nmap ip|grep "22"
echo 'test ssh post...'
IFS=$'\n'
for i in $(cat /tmp/ip.log)
doip=$(echo $i|awk '{print $1}'nmap $ip|grep "22" &>/dev/nullif [ $? -eq 0 ];thenecho "$ip 22 is ok" >> /tem/port.logfi
done
编写点名脚本
1. 名单文件
#!/usr/bin/bashnumber=$(wc -l student.txt|awk '{print $1}')
for i in $(cat student.txt)
donum=$((RANDOM % $number))
donestudent=$(sed -n "${num}p" student.txt)echo $student
随机产生一个100以内的数字,用户输入数字做对比,提示用户大了或小了,然后猜对退出
统计猜错的次数
#!/usr/bin/bashsj=$((RANDOM % 100 +1))i = 1
while true
doread -p "请输入一个数字:" numif [ ! $num=~^[0-9]+$ ];thenecho " 请输入整数"continue
fiif [ $num -ge $sj ];thenecho "大了"
elif [ $num -le $sj ];thenecho "小了"
elseecho "ok~~!"break
fi
let i++
done
echo "失败了$i 次"
# 命令总结
# 查看执行过程
sh -x version.sh
# -n1 以列的方式显示、
echo tt{1..10}|xargs -n1
# 写入文件中
echo tt{1..10}|xargs -n1 > user.txt
转载于:https://www.cnblogs.com/Afrafre/p/11405724.html
shell - for 循环相关推荐
- linux shell for 循环变量,shell for循环总结
1 shell for循环语法 for 变量 in 列表 do command1 command2 ... commandN done 1.1 读取列表中的值 #!/bin/bash for test ...
- shell for循环案例:自动批量添加iptables应用端口规则
shell foriptables ##################################################### ##如有转载,请务必保留本文链接及版权信息 ##linu ...
- linux用while循环输出1到10,Linux Shell系列教程之(十一)Shell while循环 | Linux大学...
摘要 在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经对Shell 循环语句的for循环进行了介绍,本篇给大家介绍下Shell 中另一种循环语句:Shell while ...
- Linux Shell脚本入门教程系列之(十二)Shell until循环
本文是Linux Shell脚本系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环 ...
- Linux Shell脚本入门教程系列之(十一)Shell while循环
本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中, ...
- Linux Shell脚本入门教程系列之(十)Shell for循环
本文是Linux Shell脚本系列教程的第(十)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 基本任何语言都有自己的循环语句,Shell当然也不例外,继上一篇之后,今天 ...
- linux shell for 循环变量,shell for循环、循环变量值付给其他shell脚本的方法
本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数. shell for 循环: #!第一种写法 类似c.java for ((i=1; i<=100; i + ...
- Linux脚本验证的常见方法,linux shell常用循环与判断语句(for,while,until,if)使用方法...
shell的循环主要有3种,for,while,until shell的分支判断主要有2种,if,case 一,for循环 #!/bin/bash for file in $(ls /tmp/test ...
- Linux _ Shell编程 — 循环语句
Linux _ Shell编程 - 循环语句 一.循环语句for的用法 二.循环语句while的用法 三.循环控制语句 一.循环语句for的用法 for 变量名 in 单词表do命令表done 变量依 ...
- shell—for循环
shell-for循环 文章目录 shell-for循环 1.for循环基本概述 1.1 什么是循环 1.2 什么是for循环 2.for循环基础语法 3.for循环练习题 1.for循环基本概述 1 ...
最新文章
- 简简单单的代码让你轻松学会 动态代理
- 信息学奥赛一本通 1085:球弹跳高度的计算 | OpenJudge NOI 1.5 20
- (75)信号发生器DDS锯齿波设计(一)(第15天)
- 项目管理学习总结(3)——产品文档的规划化管理总结
- [滤镜]的firefox兼容问题
- [渝粤教育] 西南科技大学 物流信息系统 在线考试复习资料
- 【学习笔记:计算几何基础3】 Convex Hull
- 《Java从入门到放弃》框架入门篇:在MyEclipse中创建SpringBoot项目
- PR-Place-performing Placement and Optimization-1
- id 查找apple_Apple ID忘记了怎么办 Apple ID找回方法【详细介绍】
- 视频教程-Unity5入门及进阶项目实战 星际迷航-Unity3D
- 由于哈希冲突,不同值的对象也可能具有相同的哈希值
- 微信云开发-事件触发器的使用
- JQuery属性选择器(属性值是变量、多属性选择)
- 【算法练习】数据结构/图论 poj4084:拓扑排序
- 梯度下降法-学习率选取
- warning: statement has no effect [-Wunused-value]
- [LeetCode] Merge k Sorted Lists 合并k个有序链表
- 格式锂电池过放后无法充电,无法识别|救活方法
- 【Linux】实验报告8 Linux文件系统