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

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

ivker_lee6年前 (2020-09-04)技术文章287
#!/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、rsync作为一个同步(备份,增量备份)命令,它的选项非常的多,常用的组合是avz,当然,如果需要建立备份服务,那么-n必然是用的多的参数选项。关于rsync的用法详细说明,参考网上的这篇原文链接:https://www.cnblogs.com/f-ck-need-u/p/7220009.html#blog21,文章写的非常好,有大量的通俗易懂的例子及解释。以下关于rsync参数选项的说明,就抄录自该文章。v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细...

Centos7学习笔记(十)- rsync服务器搭建

Centos7学习笔记(十)- rsync服务器搭建

1、服务器端yum -y install rsyncsudo vim /etc/rsyncd.conf##全局配置参数## uid = rsync gid = rsync fake super = yes use chroot = no max connections = 200 timeout = 600 #motd fi...

 Centos7学习笔记(十二)- inotify+rsync与sersync

Centos7学习笔记(十二)- inotify+rsync与sersync

1、inotify-tools的安装yum安装,安装好epel源后,yum -y install inotify-tools源码安装:wget  https://github.com/inotify-tools/inotify-tools/releases/download/3.20.2.2/inotify-tools-3.20.2.2.tar.gz tar zxvf inotify-tools-3.20.2.2.tar.gz cd inot...

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

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

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

Linux学习——Shell

Linux学习——Shell

1、bash解释器csh\ksh\bash都是shell的解释器。2、关于bash的启动和配置环境按上图的理解,正常我们需要把脚本放在开机启动,需要写入的是/etc/bashrc文件或者~/.bashrc文件。另外,关于su  username和su - username的区别(bash的交互式非登录和交互式登录式)。可以参考下图...

发表评论

访客

看不清,换一张

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