当前位置:首页 > 技术文章 > 正文内容

Centos7学习笔记(十三)- 一个解压用脚本的详细说明

ivker_lee5年前 (2020-09-04)技术文章275
#!/bin/bash
cd /home/tar
#ls出该目录下的文件,并导出所需文件名到file.log文件中
ls *.tar.gz >file.log
ls *.tgz >>file.log 2>/dev/null
ls *.tar.bz2 >>file.log 2>/dev/null
#统计file.log到底有多少文件
num=$(cat file.log|wc -l)
#for循环处理去解压
for ((i=1;i<="$num";i=i+1))
do
        bb=$(cat file.log|awk 'NR=='$i' {print $1}')
        #用if判断去处理不同的压缩文件
        #result=$(echo $bb|grep "bz2")
        #if [ -n "$result" ]         #此处,通过判断grep $bb的结果,是否为非空,来判定bz2文件
                           #补充说明,由于用[]来做的测试,那么$变量在此处需加双引号,加引号后,[]和[[]]相同
        #if [[ "$result" != "" ]]    #此句,同上一句方式一样,语句不同,注意[]和[[]]其实是一样的
        # if [[ "$bb" =~ bz2 ]]     #此处,是用操作符的方式匹配bz2,必须用[[]]方式
        if [ "$bb" == *bz2 ]        #此处,用通配符*的方式,去判断$bb是否为.bz2文件,此时,[]和[[]]相同
        then
                tar -jxvf $bb
        else
                tar -zxvf $bb
        fi
done
rm -f /home/tar/file.log

该脚本涉及到了对一个变量含有某字符串的三种判断方式,并且,说明了[]和[[]]在不同情况下的作用不同。


image.png


一般情况下,对变量做测试,尽量将其加双引号,将其视为字符串比较。具体使用建议,参见https://www.cnblogs.com/f-ck-need-u/p/7427357.html

image.png

分享给朋友:

相关文章

Centos7学习笔记(一)

Centos7学习笔记(一)

1、安装部分新知a、LVM——逻辑卷管理,作用:动态管理磁盘分区空间,缺点:影响高并发下的磁盘性能b、CentOS 7安装之前,修改网卡名称:在安装界面,按“tab”键,调整内核参数,添加“net.ifnames=0 biosdevname=0”这2个参数值(如果是安装好系统后修改,则需几步:1、重命名/etc/sysconfig/network-script/ifcfg-ens33为ifcfg-eth0,并修改内容将DEVICE和NAME值修改为eth0;2、修改/etc/default/gr...

 Centos7学习笔记(十六)- 正则表达式高级部分

Centos7学习笔记(十六)- 正则表达式高级部分

1、正则表达式工作流程取得正则字符串并检查正则语法。编译:将正则字符串编译成真正的正则表达式。启动正则引擎开始匹配正则引擎:逐个字符扫描字符串并与编译后的正则表达式的各个元素进行匹配。何为正则元素呢?纯字符组合,比如“abc123”,那么每一个字符都是一个正则元素[a-z]这样的样式,那么视中括号[]为一个整体作为正则元素,中括号内的内容是限定的匹配范围字符匹配的反斜线序列也是一种正则元素字符.是一个独立的正则元素,它除了不能匹配\n,其他任意字符都能匹配所有的*、?、{m}、{m,}、{m,n...

Centos7学习笔记(四)——grep、sed、awk

Centos7学习笔记(四)——grep、sed、awk

1、grep——print lines matching a pattern打印匹配内容的行(多行)命令格式:grep [参数] 过滤匹配内容 [文件名]或者grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]常用参数:-v 取反过滤 ◆◆-i 忽略大小写  ◆◆(find 命令可以用-iname)-n 对过滤后的内容,显示源文件行号  ◆◆-w 按单词为单位过滤。◆◆-o只输出匹配的内容。◆◆-E使用扩展规则-r...

 Centos7学习笔记(十八)- nginx基础与模块

Centos7学习笔记(十八)- nginx基础与模块

一、安装安装分为2种,yum安装和源码包编译安装。yum又分为官方源安装和epel源安装。官方的参考官方文档,主要执行以下3步:sudo yum install yum-utilssudo vi /etc/yum.repo.d/nginx.repo[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ g...

Centos7学习笔记(二十三)- nginx的keepalived高可用

Centos7学习笔记(二十三)- nginx的keepalived高可用

一、什么是keepalivedkeepalived最初是为LVS设计的,用于管理并监控LVS集群中各个服务节点的状态,后来又加入了可用实现高可用的VRRP协议支持。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。这里的VRRP协议,就是纯粹的网络中使用的VRRP协议。二、keepalived工作原理这里说“keepalived工作原...

正则表达式超全速查手册

正则表达式超全速查手册

一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数:^[0-9]+(.[0-9]{2})?$有1~3位小数的正实数:^...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。