将日期格式包含到bash中的另一个变量中
当我将日期变量包含到另一个变量中时,我很难理解语法 以下是脚本片段:将日期格式包含到bash中的另一个变量中,bash,variables,syntax,Bash,Variables,Syntax,当我将日期变量包含到另一个变量中时,我很难理解语法 以下是脚本片段: #!/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>
#!/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
如果我手动设置变量,如:
FILE="/tmp/06-07-15/*"
然后,它的工作
感谢您的帮助和建议:
AL设置昨天的值时,您使用了错误的年度说明符;%Y将4位数的年份放入字符串中,而不是目录似乎使用的2位数年份。把那行改成
YESTERDAY=$(date -d "-1 days" +"%d-%m-%y")
是否存在/tmp/06-07-2015/目录?有点不清楚您在问什么,grep的错误意味着glob/tmp/06-07-2015/*无法扩展到任何文件,并且未扩展,这意味着目录/tmp/06-07-2015不存在或为空。是的,此目录存在,文件存在。这就是我挣扎的原因我们无法为您调试。要么提供更多信息,要么由于不清楚您在问什么或者此代码为什么不起作用而关闭?好的。如果我删除了变量文件中日期的变量部分;然后它工作,循环正确地展开文件。我需要手动设置文件路径ex:FILE=/tmp/06-07-15
YESTERDAY=$(date -d "-1 days" +"%d-%m-%y")