首页 > 系统相关 >shell循环控制

shell循环控制

时间:2024-06-17 17:02:58浏览次数:11  
标签:do shell 控制 echo while 循环 done user

shell双层循环

双层循环和循环语句的使用,while和until的 语法使用

echo 打印

echo -n 表示不换行输出

echo -e 输出转义字符

\b:相当于退格键(backspace)

\n:换行,相当于回车键

\f:换行,换行后的新行开头连着上一行的行尾

\t:相当于tab键 横向制表符

echo -ne 即不换行输出制表符

#9*9乘法表
for i in {1..9}
do
 for ((j=1;j<=i;j++))
  do
   echo -ne "$i*$j=$[i*j]\t"
  done
  echo
done
#倒直角三角形
for ((i=5;i>=1;i--))
do
 for ((j=1;j<=i;j++))
 do
  echo -n $j 
 done
  echo
done

循环控制,continue和break默认数制就是1

#循环控制,break
for i in {..3}
do
for j in {l..5}
00
if [ $j -eq 3 ]
then
break 2
#循环控制,continue和break默认数值就是1.
fi
echo $j
done
#echo $i
done

#循环控制,continue
for i in {..3}
do
for j in {l..5}
00
if [ $j -eq 3 ]
then
continue 2
#循环控制,continue和break默认数值就是1.
fi
echo $j
done
#echo $i
done

exit:满足条件,立刻退出,不论有几层

exit和break类似,但是exit 后面跟任意数字都是直接退出

set -x

#开始调试模式

set +x

#关闭调试模式

while和until

while满足条件就执行循环,不满足条件才会退出

死循环,需要主动结束循环或者打到条件才结束循环。

while[判断条件]

do

​ 命令序列

done

while true #永远为真,就是死循环

while [ 1 -eq 1 ]

while :

until循环:条件不满足才执行循环,一旦条件成立,循环终止

until [ 条件 ]

do

​ 命令序列

done

#测试一个网段,c类的私有地址,32位网段,测试可以ping通的保留到/opt/host.txt,不通,提示不通#
for ping1 in {30..35}
do
{
 ping -c 1 192.168.39.$ping1&> /dev/null
 if [[ $? -eq 0 ]]
 then
  echo "ip is online"
  echo 192.168.39.$ping1  >> /opt/617test.sh/hosts.txt
 else
  echo "ip is offline"
 fi
}&
#把整个循环体的代码看做一整个内容,相当于并行,&的作用是把循环循环成立的内容放入后台执行
done
wait
#wait的执行结束之后,直接突出。并发执行

{}&

wait

可以大大的节省执行时间

练习

#使用循环语句,将一个0-255的十进制数转换8位的二进制数:
num=$(($RANDOM%256))
a=128
#128为2^7,最高位次
for ((i=1;i<=8;i++))
do
 if [[ $num -ge $a ]];then
 echo -n 1 
 #128 64 32 16 8 4 2 1如果随机数比a大则输出1,没有则输出0
 let num-=$a
 else
 echo -n 0
 fi
 a=$[a/2]
#每一个位置都是a/2的值
done
echo ""

#用户名存放在users.txt文件中,每行一个。判断文件里的用户名是否存在
#如果用户用户存在,提示用户已存在
#用户存在,但是没有设置密码,要提示用户设置密码
#用户不存在,创建用户,然后给用户创建密码
#cat /etc/passwd | awk -F: `{print $1}` | grep  "$user"
#cat /etc/shadow | grep "$user" | awk -F: '{print $2}'
for user in $(cat /opt/users.txt)
do
cat /etc/passwd | awk -F: '{print $1}' | grep "$user"
if [[ $? -eq 0 ]]
then
 echo "用户名存在"
 mima=$(cat /etc/shadow | grep "$user" | awk -F: '{print $2}')
 if [ "$mima" == "!!" ] || [ -z "$mima" ]
 then
  echo "用户没有设置密码,请设置密码"
 fi
else
 echo "用户名不存在,请创建用户名和密码"
 echo "创建用户,用户密码123"
 useradd -n $user
 echo 123 | passwd --stdin $user
fi
done

标签:do,shell,控制,echo,while,循环,done,user
From: https://blog.csdn.net/cycjok/article/details/139748230

相关文章

  • shell脚本循环
    Shell脚本循环循环:循环是一种重复执行一段代码的结构。只要满足循环的条件,会一直执行这个代码。组成部分:循环条件、循环体循环条件:在一定范围之内,按照指定的次数来执行循环。循环体:在指定的次数内,执行的命令序列。只要条件满足,循环体会被一直执行。循环和遍历:遍历:就是......
  • SSH配置、跨主机上传下载、Wrapper访问控制实验操作步骤
    目录终端OpenSSH服务器SSH(SecureShell)协议OpenSSH服务监听选项SSH配置修改端口号用户登录控制指定用户登录1.2.严格模式最大会话数量公钥验证使用公钥认证让客户端登录系统域名解析跨主机下载、上传文件下载指定端口下载上传指定端口上传 ​编辑sftp功......
  • 远程访问及控制
    目录终端OpenSSH服务器SSH(SecureShell)协议OpenSSH服务监听选项SSH配置修改端口号用户登录控制指定用户登录1.2.严格模式最大会话数量公钥验证使用公钥认证让客户端登录系统域名解析跨主机下载、上传文件下载指定端口下载上传指定端口上传sftp功能下载......
  • 初学C语言——循环语句2
    switchswitch语句也是一种分支语句,常常用于多分支的情况switch语句,语法结构语法结构:switch(整形表达式){    语句项;语句项:是一些case语句如:    case整型常量表达式:            语句;}解释break,defaultbreak:1.在循环......
  • 初学C语言——循环语句1
    C语言是结构化的程序设计语言分为:顺序结构、选择结构(分支语句)、循环结构(循环语句)分支语句和循环语句分支语句有if语句和switch语句循环语句有while、for、do、while、do...while、goto语句什么是语句?C语言中有一个分号(;)隔开的就是一条语句如:    printf("......
  • modbus TCP 操作寄存器,控制气密性测试仪
    #include"modbus.h"#include<iostream>#pragmacomment(lib,"modbus.lib")usingnamespacestd;intmain(){  modbus_t*ctx;  constchar*ipAddress="192.168.1.2";//ModbusTCP从机的IP地址  constintport=8000;//......
  • 开发一个python工具,pdf转图片,并且截成单个图片,然后修整没用的白边及循环遍历文件夹全
    今天推荐一键款本人开发的pdf转单张图片并截取没有用的白边工具一、开发背景:业务需要将一个pdf文件展示在前端显示,但是基于各种原因,放弃了h5使用插件展示原因有多个,文件资源太大加载太慢、pdf展示兼容性问题、pdf展示效果不好、pdf字体有时缺失等等,所以将项目中的协议等,全部由p......
  • DSP技术及应用的综合项目:串口与按键控制直流电机运行及液晶屏显示状态 芯片是TMS320F2
    目录绪论串口与按键控制直流电机运行及液晶屏显示状态一、实验目的及要求二、实验原理三、实验软硬件环境四、实验过程(实验步骤、记录、数据、分析)五、测试/调试及实验结果分析六、实验结论与体会内容说明参考资料绪论随着科技的飞速发展,数字信号处理器(DSP)在现代......
  • 工业自动化控制系统定制
    工业自动化控制系统定制:专业解决方案助力高效生产工业自动化控制系统定制是推动现代制造业向前发展的关键力量。本文将探讨工业自动化控制系统定制的重要性,并通过实际案例展示其在不同领域的应用效果。一、工业自动化控制系统定制的重要性在当今快速变化的市场环境中,工业自......
  • 什么是shell?
    使用Mac系统的朋友应该比较熟悉Zsh和Bash这两个shell,但是对二者具体有什么区别可能不太了解。本文将从这两个shell入手,对相关概念以及二者区别进行解释。1.什么是shell?shell单词的本意是“壳子”,在计算机领域一样可以理解为机器外面的一层壳,目的是进行用于人机交互,本质上是命令......