shell循环

news/2024/9/22 4:16:56

echo

echo -n   表示不换行输出
echo -e   表示输出转义符
常用的转义符
\r 光标移至行首,并且不换行
\s 当前shell的名称,如bash
\t 插入Tab键,制表符
\n 输出换行
\f 换行,但光标仍停留在原处
\ 表示插入"\"本身转义
\b 表示退格 不显示前一个字符
\c 抑制更多的输出或不换行
例如:

[root@server1 ~]# echo -n "Hello, ";echo "world"
Hello, world

[root@server1 ~]# echo -e "Hello\nworld"
Hello
world

 date

date查看当前系统时间

-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间

%F 完整日期格式,等价于 %Y-%m-%d

% T 时间(24小时制)(hh:mm:ss)

 cal查看日期

 seq

 for

列表循环

for 变量名 in   {list}
docommand
done
花括号{}和seq在for循环的应用:
for i in {1..50..2} 1-50的奇数for i in {2..50..2} 1-50的偶数
for i in {10..1}  1-10倒序排列for i in $(seq 10)  1-10正序排列
for i in $(seq 10 -1 1) 1-10倒序排列
for i in $(seq 1 2 10) 1-10的奇数,中间为步长

不带列表循环

for 变量名 
docommand
done
例1:打印hello
第一种:
[root@server ~]# vim for2.sh #!/bin/bash
for i    
doecho hello
done[root@server ~]# . for2.sh   
#没有给脚本传参所以执行了没有结果[root@server ~]# . for2.sh a   
#把a赋值给变量i,i有值了它就开始执行do..done了
hello

C语言风格的for循环

for ((expr1;expr2;expr3))
docommand
doneexpr1:定义变量并赋初值
expr2:决定是否循环
expr3:决定循环变量如何改变,决定循环什么时候退出sum=1   i2=2
sum+=i    等于   sum=sum+i  #需要使用 let  命令++    自身变量+1   
--  自身变量-1    
+=5    自身变量+5   
-=5    自身变量-5
*=5    自身变量*5
/=5    自身变量/5
%=5    自身变量%5
[root@server ~]# vim for3.sh
#!/bin/bash
for ((i=1;i<=10;i+=2))   //i=i+2
doecho $i
done

while

while  :
dodone
######求和###########
#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
let sum+=$i
let i+=2
done
echo $sum
###############批量建立用户##################################
#!/bin/bash
i=0
while [ "${i}" -le 20 ]
do
useradd stu${i}
echo "123456" |passwd --stdin stu${i} &>/dev/null
if [ $? -eq 0 ]
then
echo "用户 stu${i} 被建立"
else
echo "用户 stu${i} 建立失败"
fi
let i++
done
##############猜价格游戏##########################
#!/bin/bash
p=`echo $[RANDOM%1000+1]`
t=0while true
do
read -p "请输入商品的价格1-1000:" num
let t++
if [ $num -eq $p ]
then
echo "恭喜你猜中了,实际价格是$p"
echo "您一共猜了${t}次"
exit 0
elif [ $num -gt $p ]
then
echo "您猜的价格高了" 
else
echo "您猜的价格低了"
fi
done

跳出循环

  • break跳出单个循环 break n 数字数字是几代表跳出n层循环

  • continue终止某次循环中的命令,但是不会完全终止命令

  • exit 直接退出脚本

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31513.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

BiTCN:基于卷积网络的多元时间序列预测

前言 本文将详细介绍了BiTCN,这是2023年3月在《Parameter-efficient deep probabilistic forecasting》一文中提出的模型。通过利用两个时间卷积网络(TCN),该模型可以编码过去和未来的协变量,同时保持计算效率。 作者:Marco Peixeiro 本文转载自Deephub Imba 仅用于学术分享…

LSTM卷土重来!xLSTM:一举超越Mamba、Transformer!

前言 LSTM:这次重生,我要夺回 Transformer 拿走的一切。 本文转载自新智元 仅用于学术分享,若侵权请联系删除 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。 CV方向的准研究生们,未来三年如何度过? 招聘高光谱图像、语…

有奖调研 | OpenSCA开源社区用户调研问卷

为了更好地满足用户的需求,提升OpenSCA的实用性和易用性并促进社区的发展,我们决定发起一项用户调研活动,诚挚邀请您的参与。调研背景: 亲爱的OpenSCA开源社区用户,感谢您一路以来的支持与相伴。随着OpenSCA开源社区的不断发展,我们持续专注安全开发与开源治理实践,为全…

热力学基础

目录 目录前言1.热力学第一定律2.理想气体的热容3.理想气体四种过程的计算前言 其实是想直接开始写热力学基础的内容的,但是我发现这部分非常需要前置的气体动理论的支撑,因此先写完了气体动理论再开始写热力学基础相关内容。 鉴于这部分的内容量比较大,我也不打算再分多篇了…

Allure2添加用例标题、用例步骤

1、Allure2报告中添加用例标题 Allure 用法方法名 方法参数 参数说明@allure.epic() epic 描述 敏捷里面的概念,定义史诗,往下是 feature@allure.feature() 模块名称 功能点的描述,往下是 story@allure.story() 用户故事 用户故事,往下是 title@allure.title(用例的标题) 用…

.NET使用P/Invoke来实现注册表的增、删、改、查功能

注册表可以用来进行存储一些程序的信息,例如用户的权限、或者某些值等,可以根据个人需要进行存储和删减。 当前注册表主目录:引用包 Wesky.Net.OpenTools 1.0.5或者以上版本 操作演示: 创建注册表项设置注册表值读取注册表值删除注册表值删除注册表项操作演示代码IRegistry…

IDEA社区版(IDEA Community Edition)创建Springboot父子项目

1. 因为社区办不支持使用spring Spring Initializr 的方式创建项目, 但是我们可以考虑使用别的方式达到效果: 创建方式有3种: 第一种:使用https://start.spring.io/ 官方URL创建项目,再导入到 IDEA Community Edition(后面简称:ideaC)。具体使用自行百度。缺点:没办法自定…

php查询结果汉字乱码解决方法

问题描述:使用php查询数据显示,显示的结果中所有汉字乱码问题及解决:这种情况是编码造成的,检查数据库及页面编码是否一致,也可在页面增加: header(Content-Type:text/html;charset=utf-8); 刷新后页面汉字显示正常,问题解决