Shell---循环语句

一、echo

echo -n   表示不换行输出
echo -e   表示输出转义符
常用的转义符

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

echo   写脚本的时候  对齐   不换行  


[root@localhost ky15]#echo -e "12345\b678"
##退格删除前面的字符
1234678
[root@localhost ky15]#echo -e "12345\b\b678"
123678
[root@localhost ky15]#echo -e "12345\b\b\b678"
12678
[root@localhost ky15]#echo -e "12345\b\b\b\b678"
16785
###注意退格键和末尾的字符相关,超过末尾的字符数量 会出bug 了解即可

[root@localhost ky15]#echo -e "12345678\c"
12345678[root@localhost ky15]#echo -e "1234\c5678"
1234[root@localhost ky15]#
###\c 注意 使用在数字中间会把后面内容删除

echo -e "n\n\n\n\n\nw"|fdisk /dev/sdb
#自动硬盘分区

#!/bin/bash
read  -p   "请输入你要分区的设备:"   disk
read  -p   "请输入你要分区的大小:"   num

echo  -e  "n\n\n\n\n${num}\nw\n " | fdisk ${disk}


[root@localhost data]#rm -rf 123      
#是把软连接删除
[root@localhost data]#rm -rr 123/
#把软连接里的文件全删除

\b

###删除前面的字符,如果退格数大于前面的字符,就会有bug

Shell---循环语句_第1张图片

\t

###制表符,tab退格

Shell---循环语句_第2张图片

\c

###删除后面的字符,并删除了换行符

Shell---循环语句_第3张图片

\r

###换行

Shell---循环语句_第4张图片

echo {0..10..2}

Shell---循环语句_第5张图片

eval

###协助bash做多次运算

Shell---循环语句_第6张图片

二、date

date查看当前系统时间

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

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

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

Shell---循环语句_第7张图片

cal 年份 ###日历

Shell---循环语句_第8张图片

三、循环语句

循环含义

将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件

重复运行次数

  • 循环次数事先已知

  • 循环次数事先未知

常见的循环的命令:for, while, until

for:用在已知次数的情况下

Shell---循环语句_第9张图片

1.1~100 sum求和两种方式

Shell---循环语句_第10张图片

2.1~100 sum求奇数和

Shell---循环语句_第11张图片

3.批量添加用户

1.用户名存放在name.txt文件中,每行一个
2.初始密码均为123123
3.验证脚本

Shell---循环语句_第12张图片

4.打印 99乘法表,的两种方式

一、

Shell---循环语句_第13张图片

二、

Shell---循环语句_第14张图片

结果:

Shell---循环语句_第15张图片

5.ping地址

1.根据IP地址检查主机状态
2.IP地址存放在ipadds.txt文件中,每行一个
3.使用ping命令检测主机的连通性

Shell---循环语句_第16张图片

结果:

Shell---循环语句_第17张图片

6.修改文件后缀

Shell---循环语句_第18张图片

结果:

Shell---循环语句_第19张图片

7.批量修改文件名

Shell---循环语句_第20张图片

结果:

Shell---循环语句_第21张图片

while 和 until:用在已知条件下

while

相对于for,需要知道循环次数

我们只知道停止条件,不知道次数,就需要使用while

直到达到条件

while循环 1、语法结构 2、死循环

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循

1.求1~100和

Shell---循环语句_第22张图片

2.猜商品价格游戏

1.通过变量RANDOM货的随机数
2.提示用户猜测,并记录次数,猜中后退出循环

Shell---循环语句_第23张图片

3.批量添加用户

1.用户名称以stu开头,按数字顺序进行编号
2.一共添加20个用户,即stu1、stu2.....
3.初始密码为123123

Shell---循环语句_第24张图片

结果:

Shell---循环语句_第25张图片

untile

until 循环与 while 循环类似,while 循环能实现的脚本 until 同样也可以实现,但区别是while 循环在条件为真是继续执行循环,而 until 则是在条件为假时执行循环

until 条件测试操作
do
命令序列
done

求和

Shell---循环语句_第26张图片

双重 循环及跳出循环

break:break  n(默认为0),n为几,就跳出几层循环

continue:跳出本次循环,下次接着循环

exit:直接退出脚本

[root@localhost ~]#cat continue.sh 
#结束某次循环
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then continue 
fi
echo i=$i
done

[root@localhost ~]#cat break.sh 
#结束一层循环
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then break
fi
echo i=$i
done


[root@localhost ~]#cat continue.sh 
#本层循环
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then continue 2
fi
echo i=$i
done


[root@localhost ~]#cat break.sh 
#本层循环
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then break 2
fi
echo i=$i
done


多层跳出
#!/bin/bash
for i in {1..10}
do
   for j in {1..10}
   do
   echo  "j=$j"
done
echo ----------------
done

[root@localhost ~]#cat break.sh 
#!/bin/bash
for j in {1..9}
do
        for i in {1..9}
        do
        if  [ $i -eq 5 ]
        then
        break
        fi
        echo i=$i
        done
done


#select  菜单选择
[root@localhost ~]#select menu in 配置网卡 配置yum源;do echo $menu;done
1) 配置网卡
2) 配置yum源
#? 1
配置网卡
#? 2
配置yum源
#? 
[root@localhost ~]#PS3="请选择功能(1-2):";select menu in 配置网卡 配置yum源;do echo $menu;done
1) 配置网卡
2) 配置yum源
请选择功能(1-2):1
配置网卡
请选择功能(1-2):2
配置yum源
请选择功能(1-2):

四、正则表达式

. 容易单个字符
[  ] 单个字符
* 前面字符出现 0 到 正无穷
+ 到正无穷
\{3\} 3次
{n} n次
{n,} 最少n次
{,n} 最多n次
{n,m} n到m次
^ 开头
$ 结尾
\b 字符串开头 结尾
\ 转义
.* 1  到  正无穷
^$ 空行

你可能感兴趣的:(服务器,运维,linux,centos,开发语言,脚本,php)