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

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

ivker_lee6年前 (2020-09-04)技术文章278
#!/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

分享给朋友:

相关文章

Linux新学

Linux新学

[TOC]基础命令find与lsls1 .只显示目录ls -F | grep "/$"-F 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件ls -al | grep "^d"2.只显示文件ls -al | grep &quo...

Centos7学习笔记(二)-基础命令(二)

Centos7学习笔记(二)-基础命令(二)

3、Linux基础命令1、date参数:-s  设置日期-d  display time described by STRING, not 'now'---用日期表示法的完整字符串(比如“1day”,“2month”,“1year”)来显示时间,但不准用“now”。实例如下:[root@ecs-ryCz8 /home/study]# date +%F -d "now" 2020-...

Centos7学习笔记(三)——重定向、通配符、正则

Centos7学习笔记(三)——重定向、通配符、正则

1、STDIN、STDOUT、STDERR输入重定向和输出重定向的符号和作用,分别在下面2个表中。注意:当输出结果是error时,是不能将结果重定向到“标准输出”中,反之,输出结果是“标准输出”,也不能重定向至错误输出中。如下图实例:[study@nfs01 ~]$sudo echo "00 1 * * * /usr/bin/rsync  -avz -r /etc/r...

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...

phpldapadmin之config.php过滤

phpldapadmin之config.php过滤

完全过滤掉/*--------*/"和空行,以及”//“开头、”#“开头的行,sed  -e '/\/\*/,/\*\//d' config.php|grep -Ev "(^$)|(^(\/\/))|(^#)"sed  -e '/\/\*/,/\*\//d' -e '/^\/\//d' -e ...

Centos7学习笔记(七)— 性能调优一

Centos7学习笔记(七)— 性能调优一

1、nice,renice  调整进程nice值,让进程使用更多的CPUnice值   #范围,  -20 ~ 19  越小优先级越高 普通用户0-19作用:以什么优先级运行进程 。默认优先级是0语法: nice  -n 优先级数字   命令例:# nice -n -5 vim a.txt   # vim进程以-5级别运行查看:ps -axu | grep a.txt[root@xueg...

发表评论

访客

看不清,换一张

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