linux脚本执行出现 -bash: syntax error near unexpected token `(' 语法无错 请大师指点 脚本见内
#!/bin/bashlog_dir=/home/abc/cd$log_dira_1=$(find.-namea.1)if["$a_1"=="./a.1"];thenta...
#!/bin/bash
log_dir=/home/abc/
cd $log_dir
a_1=$(find . -name a.1)
if [ "$a_1" == "./a.1" ]; then
tar -zcf abc.tar.gz a.* --exclude=a.0 --exclude=abc.tar.gz
shopt -s extgolb
rm -f !(a.0|abc.tar.gz)
fi
其中在/home/abc/下有a.0 a.1 a.2三个文件,我要把除了a.0以外的两个文件打包并删除打包前的两个文件,不加if语句没问题,加了if语句就报题目中的错,我加if是因为假如目录中只有a.0或无文件就不打包。
请大师指点!谢谢! 展开
log_dir=/home/abc/
cd $log_dir
a_1=$(find . -name a.1)
if [ "$a_1" == "./a.1" ]; then
tar -zcf abc.tar.gz a.* --exclude=a.0 --exclude=abc.tar.gz
shopt -s extgolb
rm -f !(a.0|abc.tar.gz)
fi
其中在/home/abc/下有a.0 a.1 a.2三个文件,我要把除了a.0以外的两个文件打包并删除打包前的两个文件,不加if语句没问题,加了if语句就报题目中的错,我加if是因为假如目录中只有a.0或无文件就不打包。
请大师指点!谢谢! 展开
展开全部
#!/bin/bash
log_dir=/home/abc
cd $log_dir
if [ -f a.1 ]; then
tar -zcf abc.tar.gz a.* --exclude=a.0 --exclude=abc.tar.gz
shopt -s extgolb
rm -f `ls |grep -v a.0|grep -v abc.tar.gz`
fi
log_dir=/home/abc
cd $log_dir
if [ -f a.1 ]; then
tar -zcf abc.tar.gz a.* --exclude=a.0 --exclude=abc.tar.gz
shopt -s extgolb
rm -f `ls |grep -v a.0|grep -v abc.tar.gz`
fi
追问
谢谢您 不过有两点想追尾您一下 1.我原来的脚本哪儿不对?2.最后rm -f那一行貌似没有执行成功 麻烦您再指点一下 谢谢您!
追答
删除文件不对,rm不支持这种排除方式
另外判断文件存在不用这么麻烦, if 可以用 -f 判断是否普通文件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |