在将日期变量包含在另一个变量中时,我在构建语法时遇到了一些困难。
以下是脚本代码段:
#!/bin/bash -x
DAY=$(date +%d-%m-%y)
YESTERDAY=$(date -d "-1 days" +"%d-%m-%Y")
FILE=/tmp/${YESTERDAY}/*
OUTPUT="/tmp/count_${YESTERDAY}.log"
for i in $FILE
do
grep -oP "(?<=<TEST>).*?(?=</TEST>)" ${i} >> ${OUTPUT};
done
输出:
grep: /tmp/06-07-2015/*: No such file or directory
如果我手动设置变量,如:
FILE="/tmp/06-07-15/*"
然后它解决了;
感谢您的帮助和建议:)
AL
答案 0 :(得分:1)
当您设置YESTERDAY
的值时,您使用了错误的年份说明符; %Y
将4位数年份放在字符串中,而不是您的目录似乎使用的2位数年份。将该行更改为
YESTERDAY=$(date -d "-1 days" +"%d-%m-%y")