在软件测试之初,shell脚本就是为了理解这个概念而设计的。那时候这个技能基本不用,大部分工作都是一点一点做的。
现在因为行业原因,我们经常要在Linux服务器上做一些常见的操作。
如果没有遇到百度,你会慢慢学习一些以前没有接触过的Linux命令,也会开始阅读关于shell脚本的书籍。如果你没有阅读的实际经验或实践,你就会有一个概念。
Linux命令应用广泛,自然想到shell脚本,想用它来解决工作中的一些重复性操作,于是边学边用,效果还不错。
工作场景
测试的时候,我们会把软件包复制到管理平台的软件仓库,如果仓库里有,我们会覆盖。
手动操作的过程如下:
Wget【url】:下载软件包,压缩包格式;
Tar-zxvf xxx.tar.gz:将软件包解压到当前文件;
进入解压文件,包含2个文件夹,然后依次复制。这里使用的是scp命令,-r表示递归目录,scp-rxxxx//opt/xxx。
为什么这里没有cp?因为找到cp覆盖的时候总是提示手动确认,太繁琐了。所以这里用的是scp命令,常用于两台服务器之间的远程拷贝。
这个软件包更换过程做了很多次,已经熟悉和熟悉了。突然有一天,要告诉一个不懂Linux命令的人去完成软件包替换,会变得稍微困难一点。
考虑到我经常做这个操作,又不想白教别人,就写个简单的shell脚本吧。
设计理念
将下载地址作为位置参数传递到脚本中。
根据当前时间,具体到分钟,在脚本所在的文件中创建一个文件夹,用那个时间做名字,避免重复文件夹名什么的。
进入这个文件夹,下载压缩包。
解压压缩包,然后删除压缩包,为下一步做准备。
解压后就是一个文件夹。让我们得到这个文件夹的名字,然后进去。
复制文件,完成。
实现如下:
#!/bin/bash #获取当前时间 Cur _ date = ` date+% y % m % d-% h-% m ` tmp _ dir = service _ $ Cur _ date #根据时间创建一个文件夹。访问目录:& # 34;$ tmp _ dir # Download echo & # 34;将文件下载到& # 34;$tmp_dir wget #解压缩 echo & # 34;解压缩文件& # 34; 睡眠3 tar-zxvf * . tar . gz echo & # 34;解压完成,压缩包删除& # 34; RM-RF * . tar . gz for I in ` ls ` do echo & # 34;包的文件夹名:& # 34;$ I tmp _ dir _ package = $ I done CD $ tmp _ dir _ package echo & # 34;输入软件包目录:& # 34;$ tmp _ dir _ package echo & # 34;开始将软件包复制到ole depot/opt/& # 34; scp -r包/ /opt/ scp -r存储库//opt/ echo & # 34;拷贝软件包,别忘了在sole软件仓库刷新!!!" 睡眠3(左右滑动查看完整代码)
好了,写了一个简单的脚本。
编写知识点