【发布时间】:2017-05-13 07:08:54
【问题描述】:
如何检查当前日期是否仅存在一个文件。 我有一个脚本:
name="nginx.log"
data=$(date +%Y.%m.%d)
current_nginx=$name.$data
cd /var/log/
for i in `ls "$name"*`; do
if [[ $i == "$current_nginx" ]]; then
echo "only one file is exists"
else
echo "other files is exists"
fi
done
我有文件:
ls -l /var/log/nginx.log*
-rw-r--r-- 1 root root 4814275 May 12 23:59 /var/log/nginx.log.2017.05.12.gz
-rw-r--r-- 1 root root 40468077 May 13 09:40 /var/log/nginx.log.2017.05.13
在脚本的结果中我有:
bash test.sh
other files is exists
only one file is exists
我有错误的地方。我重复。如果我只有一个当前日期的 nging.log,我想得到“只有一个文件存在”。如果我有更多 nginx.log.* 文件,我想得到消息“其他文件存在”。
【问题讨论】:
-
ls "$name"*?请阅读 cmets 至您的last question。 -
只有一个当前日期?这是否意味着您要检查是否没有其他日期(所有匹配
"$name."*也匹配"$name.$data"*),或者您要计算当前日期的文件(匹配"$name.$data"*的文件) )?
标签: linux bash shell for-loop if-statement