运维笔记23 (shell脚本,expect的简易用法)

本文介绍了Linux Shell的内建参数和条件判断,如!"的妙用",位置参数,test条件判断及文件状态运算符。接着讲解了逻辑运算符及其用法。此外,还探讨了数值运算的多种方式。文章重点讨论了 Expect 工具,它是自动化交互任务的利器,通过spawn、set、expect和send等命令实现脚本自动化。最后提供了一个示例脚本,演示如何使用expect扫描网络并自动创建用户。
摘要由CSDN通过智能技术生成

概述:

shell是我们和linux接触的通道,灵活使用使用shell就能更好的掌控linux,想学好shell首先是要理解熟记很多的命令,这就相当于英语积累的单词一样,单词记得多了,英语自然就好了,但是想要真正变成英语达人还要了解些语法,shell也是一样,命令是单词,也有他的语法,我们这次主要讨论语法部分。

 expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。简单的说,如果没有expect的话很多需要交互的场景我们就需要一直守在计算机前面进行输入,如果输入是主要步骤还好,我们输入完就结束任务了,那万一,我们有一个任务是在凌晨3点以root身份执行一个脚本呢,我们需要的输入只是一个密码,却要一直在电脑前等到3点,想想都很亏。

1 bash的一些内建参数

1.1 "!"的妙用

!*:上一个命令的所有参数

[root@foundation3 mnt]# ls -a -l
total 41616
drwxrwxrwx.  3 root root       84 Dec 13 17:16 .
。。。省略
[root@foundation3 mnt]# echo !*
echo -a -l
-a -l
!^:上一条命令的第一个参数

[root@foundation3 mnt]# ls -a -l
total 41616
drwxrwxrwx.  3 root root       84 Dec 13 17:16 .
。。。省略
[root@foundation3 mnt]# echo !^
echo -a
-a
!$:上一条命令的最后一个参数
[root@foundation3 mnt]# ls -a -l
total 41616
drwxrwxrwx.  3 root root       84 Dec 13 17:16 .
。。。省略
[root@foundation3 mnt]# echo !$
echo -l
-l
!#:意义不明。。。。

[root@foundation3 mnt]# echo !#
echo echo 
echo
!<comm>:<num>:显示上一个comm命令的第num个参数

[root@foundation3 mnt]# cp scan /media/
[root@foundation3 mnt]# echo !cp:2
echo /media/
/media/
[root@foundation3 mnt]# echo !cp:1
echo scan
scan
!(file):除去file代表的文件

[root@foundation3 tmp]# ls
file10.pdf  file1.txt  file3.pdf  file4.txt  file6.pdf  file7.txt  file9.pdf
file10.txt  file2.pdf  file3.txt  file5.pdf  file6.txt  file8.pdf  file9.txt
file1.pdf   file2.txt  file4.pdf  file5.txt  file7.pdf  file8.txt  file.pdf
[root@foundation3 tmp]# rm -rf !(*.pdf)
[root@foundation3 tmp]# ls
file10.pdf  file2.pdf  file4.pdf  file6.pdf  file8.pdf  file.pdf
file1.pdf   file3.pdf  file5.pdf  file7.pdf  file9.pdf
上面的演示就是把.pdf结尾以外的文件都删除。

1.2 shell的位置参数

位置参数的个数:$#(通常用来判断是否加入了参数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值