Shell:shell中常用的语句(for,while,if,case,expect)

一.for循环

seq命令:用于产生某个数到另外一个数之间的所有整数

1.for语句

for NUM in 1 2 3
for NUM in {1…3}
for NUM in seq 1 3 或者 for NUM in seq 1 2 10
do
done

2.for语句示例

  • 编辑脚本,实现计数
[root@shell mnt]# vim test.sh

脚本编辑内容如下:
在这里插入图片描述
检测如下:
在这里插入图片描述

[root@shell mnt]# vim test1.sh

在这里插入图片描述
在这里插入图片描述

  • 编写循环脚本,可浏览目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 用seq命令实现计数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    练习:
    (1)编辑一个文件,检测该文件下的ip,如果网卡开着的话显示up,如果关闭的话显示down
    在这里插入图片描述
    脚本编辑内容为:
    在这里插入图片描述
    检测如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (2)写一个脚本实现30s的倒计时
    在这里插入图片描述
    脚本内容:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

二.while循环

1.while语句

while 条件
do
done

2.while语句示例
until表示条件为假的时候,while表示条件为真的侍候
(1)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
练习:
(1)编写一个脚本,用while语句实现用户的建立和删除
在这里插入图片描述
脚本编辑如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
验证如下:
在这里插入图片描述

三.if判定语句

1.if语句

扫描二维码关注公众号,回复: 5494788 查看本文章

if
then
elif
then

else
fi

2.if语句示例

(1)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)
判定输入的是否为一个文件,是文件的话输出文件存在,不是文件的话输出文件不存在.

[root@shell mnt]# vim check_file.sh

在这里插入图片描述
在这里插入图片描述
(3)
实现1分10秒的倒计时
在这里插入图片描述
脚本编辑内容如下:
在这里插入图片描述
验证如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:clear表示清屏;sleep 1表示每隔1s计时1次
(4)

四.case语句

1.case语句

case
word1 )
action1
;;
word2 )
action2
;;

*)
action_list
esac

2.case语句示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五.expect语句

1.expect语句

expect语句是自动应答命令用于交互式命令的自动执行

sapwn 是expect中的监控程序,其运行后会监控命令提出的交互问题
send 发送问题答案给交互命令
“\r” 表示回车
exp_continue 标示当前问题不存在时继续回答下面的问题
expect eof 表示当问题回答完毕时退出expect环境
interact 标示问题回答完毕留在交互界面
set NAME [ index $argv n ] 定义变量

2.expect的使用及示例
(1)expect的使用

  • expect不同于脚本,使用前要安装该软件
    在这里插入图片描述
    在这里插入图片描述
    (2)expect的示例

编写脚本 :
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:由于执行脚本时如果有一个问题不回答的话,则会显示该问题的答案为空但是还是会显示,但是如果用expect应答的话,如果不给问题的答案则会自动跳过,显示的时候也不会显示该问题,验证如下:

查看expect支持环境:
在这里插入图片描述
编写expect自动应答工具脚本:
在这里插入图片描述
验证:
在这里插入图片描述

  • 编辑脚本连接ip

shell和expect时不能同时用的但是用到输出重定向可以实现shell与expect的共用

在这里插入图片描述
脚本编辑内容如下:
在这里插入图片描述
验证如下:
在这里插入图片描述

  • 编辑脚本检测ip为172.25.254.1到172.25.254.5的主机是否开着,如果开着则将结果定向到文件中
    在这里插入图片描述

六.脚本中的语句控制器

exit n ##脚本退出,退出值为n
在这里插入图片描述
在这里插入图片描述
注:exit 0是代码正常时候的退出值,$?是显示上一条命令的输出结果

continue : 提前结束循环内部的命令,但不终止循环
在这里插入图片描述
在这里插入图片描述
break:退出当前循环
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/88373024
今日推荐