首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找shell脚本日志(SUSE Linux、bash、if、find)

查找shell脚本日志(SUSE Linux、bash、if、find)
EN

Stack Overflow用户
提问于 2015-11-30 20:10:06
回答 1查看 135关注 0票数 0

我对shell脚本中的find命令有问题。

我的脚本找到归档,然后解压其中的一些日志,并对结果进行tar,将其移动到更高的级别,并删除在进程中创建的文件。

还有一个问题是,即使脚本没有找到归档或日志,它也会执行所有操作,因此它会创建空的tar。使用名称:

代码语言:javascript
复制
date_patern_patern.tar

我试着用if语句或者&&和||运算符来修复它,但是我无法处理它,你能告诉我怎么做吗?

我已经修改了脚本:

代码语言:javascript
复制
#!/bin/bash

printf " -----\nSerch date: $1 \n"
printf "Serch patern: $2 \n"
printf "serch patern: $3 \n -----\n\n"

printf "Serch archives:\n"
mkdir /cc/xx/logs/aaa/envelop/tmp

find archives/ -name "$1_*_messages.tar.gz" -exec cp {} tmp \;
    ls -l tmp/$1_*_messages.tar.gz || exit 1
    cd tmp
    tar -xf $1_*_messages.tar.gz --wildcards --no-anchored "*$2_$3*"
    printf "Find envelop:\n"
    ls -l alsb-message/ || exit 1
    mv alsb-message $1_$2_$3
    tar -cvf $1_$2_$3.tar $1_$2_$3
    mv $1_$2_$3.tar ..
    rm *.gz
    rm -R $1_$2_$3
    cd ..
    rm -r tmp

还有另一个问题,我希望我的脚本在搜索时停止,并且在schript搜索时找不到patern:

代码语言:javascript
复制
./serch_script.sh 20151110 patern2 patern3 

它既找不到parern2,也找不到patern3,我想让它停止,但它又找到了,.tar,我试着像普拉萨娜说的那样做,但它在这种情况下不起作用,

EN

回答 1

Stack Overflow用户

发布于 2015-12-01 00:39:32

请替换以下行

代码语言:javascript
复制
ls -l tmp/

下面这一行

代码语言:javascript
复制
ls -l tmp/$1_*_messages.tar.gz || exit 1

基本上,在这段代码中,如果临时目录中没有符合条件的文件,那么您就是在运行exit 1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33998372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档