我在根目录中,我正在创建一个脚本,它将带我从root>主页>日志和内部日志删除3个日志文件。 脚本将检查它们是否存在,如果是,它将删除它。 如果你能提供帮助,我将面临一些语法问题。
由于
我的代码:
#!/bin/sh
cd Home/Log
if [ -e error1.log ]
then
rm error1
fi
if [ -e error2.log ]
then
rm error1
fi
if [ -e error3.log ]
then
rm error1
fi
当我使用./delete
在root中执行文件时,这就是错误:
$ ./delete
: No such file or directoryme/Log
./delete: line 14: syntax error near unexpected token `fi'
答案 0 :(得分:1)
我在根目录
在编写脚本时,最好不要假设这样的事情。如果您知道文件的位置,并且它们与您当前工作目录相关的位置并不重要,那么只需命名它们即可。
以下三种方法可以安全地完成您想要的任务。
#!/bin/sh
dir=/Home/Log
rm -f ${dir}/error1.log ${dir}/error2.log ${dir}/error2.log
或
#!/bin/sh
dir=/Home/Log
rm -f ${dir}/error{1,2,3}.log
或
#!/bin/sh
set -e
cd /Home/Log && rm -f error1.log error2.log error2.log
对于任何不重要的事情,set -e
是你的朋友。在您的示例中,稍后脚本中不会发生任何事情。你不想要的是继续思考你已经改变了目录,但是没有,并且最终在你不想要的地方乱涂乱画。很多人都失去了很多。