一.if语句
格式:
if
then
elif
then
else
eg:为便于理解,请看此脚本
eg:编写脚本来开启或关闭相关服务
eg:用if语句来编写一个脚本,用来判断文件类型
脚本内容:
法一:不使用函数
法二:使用函数
2、文件不存在报错
3、文件行数差异报错
4、当用户存在显示用户存在,但不修改密码
5、当用户不存在,建立用户并设定相应密码
格式:
case
word1)
action1
;;
word2)
action2
;;
….
action_last
esac
eg:为便于理解可以用if和case分别写一个脚本(输入 cat 显示 dog ;输入 dog 显示 cat),比较可知:
用if写的(每次都要从前向后比较,越靠后的情况需要花费时间越大):
用case写的(并行进行,先后顺序对花费时间无影响):
结论:与if在字符匹配不一样 case语句横向同时比较,效率优于if语句。
eg:编写脚本,在脚本后输入create userfile passfile时建立用户,输入delete userfile时删除用户
三、expect语句
自动应答工具
spawn 监控
expect eof 回答完问题后退出
interact 保留环境不退出,例如:ssh
exp_continue 继续
set NAME [ lindex $ argv 0 ] 代表expect后跟的第一串字符赋值给NAME
set OBJ [ lindex $argv 1 ] 代表expect后跟的第二串字符赋值给OBJ
eg:为便于理解,编写此脚本:vim question.sh
内容如下:
第一种自动应答脚本:
[root@desktop mnt]# vim answer.sh
- 1
内容如下:
执行如下:
第二种自动应答脚本:
[root@desktop mnt]# vim answer1.sh
- 1
内容如下:
执行如下:
eg:编写脚本后面跟ip和密码会直接连接其他主机