51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1209|回复: 0
打印 上一主题 下一主题

小白也能操作Linux,简单的shell脚本编写边学边用!

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:05
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-12-21 09:56:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     在刚入行软件测试的时候,shell脚本也就是了解这个概念,那会儿也基本用不到这个技能,工作做得最多的就是点点点。
      现在由于所处行业的关系吧,经常要在linux服务器做些常见操作。遇到不会的就百度,也慢慢的学了一些之前没有接触过的linux 命令,也开始看shell脚本的书籍,看过没有实战没有练习,也就存在一个概念。
      Linux命令用多了,自然而然想到了shell脚本,想要用它来解决一些工作中的重复操作,于是开始边学边用,效果还不错。
      工作场景:
      我们测试的时候会把软件包拷贝到管理平台的软件仓库中,如果仓库中有,就要覆盖掉。
      手动操作的流程是这样的:
      wget【url】:下载软件包,压缩包格式的;
      tar -zxvf xxx.tar.gz:解压软件包到当前文件;
      进入到解压好的文件中,里面有2个文件夹,然后依次拷贝,这里使用scp命令,-r是递归目录的意思。scp -r xxx/  /opt/xxx
      这里为啥没用cp呢?因为我发现cp覆盖时,老是提示我,需要我手动确认,太繁琐了。所以这里使用了scp命令,这个命令经常用于两个服务器之间远程拷贝。
      这个软件包更换流程,做的次数多了也熟练和熟悉了,突然有一天,要告诉一个不懂linux命令的人,让他去完成软件包更换工作。这就有点难上加难了。想到了自己也经常做这个操作,也不想对别人进行小白教学,那就编写个简单的shell脚本吧。
      设计思路是这个的:
    1. #!/bin/bash  
    2. #获取当前时间  
    3. cur_date=`date +%Y%m%d-%H-%M`  
    4. tmp_dir=service_$cur_date  
    5. #根据时间,创建文件夹  
    6. mkdir $tmp_dir  
    7. cd $tmp_dir  
    8. echo "进入目录:"$tmp_dir  
    9. #下载  
    10. echo "下载文件到"$tmp_dir  
    11. wget $1  
    12. # 解压  
    13. echo "正在解压文件"  
    14. sleep 3  
    15. tar -zxvf *.tar.gz  
    16. echo "解压完成,开始删除压缩包"  
    17. rm -rf *.tar.gz  
    18. for i in `ls`  
    19. do  
    20.         echo "软件包的文件夹名:"$i  
    21.         tmp_dir_package=$i   
    22. done  
    23. cd $tmp_dir_package  
    24. echo "进入包目录:"$tmp_dir_package  
    25. echo "开始拷贝软件包到ole软件仓库/opt/"  
    26. scp -r package/ /opt/  
    27. scp -r repository/ /opt/  
    28. echo "软件包拷贝完成,别忘了去sole软件仓库刷新啊!!!"  
    29. sleep 3
    复制代码
    1将下载地址作为位置参数传入脚本
      根据当前时间,具体到分钟吧,在脚本所在文件创建一个文件夹,名称就用上那个时间,避2免文件夹重名啥的
      3进入这个文件夹,下载压缩包
      4解压压缩包,然后删除压缩包,为下一步做准备
      5解压后就一个文件夹,我们获取一下这个文件夹名字,然后进去
      6拷贝文件,完成。
      具体实现如下:
      好了一个简单的脚本写好了,脚本知识点:
      1、反引号的使用,反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量
      2、位置参数的使用
      3、创建文件夹、删除、解压、echo、sleep
      4、scp拷贝,远程拷贝
      5、for循环
      6、wget 下载

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-19 05:29 , Processed in 0.064756 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表