latest_time=$(date +%Y%m%d)还有这个获取当前时间也不变化
时间: 2024-03-15 14:44:40 浏览: 65
如果latest_time的值一直不变,有可能是因为这行代码只在脚本运行时执行一次,而不会在后续的运行中更新。你可以将这行代码放到需要检查日期的地方之前,每次运行时都重新获取当前时间。例如:
```bash
if [ $(find /var/log/program_monitor/ -maxdepth 1 -name "*.log" | wc -l) -gt 0 ]; then
echo "1"
latest_log=$(ls -t /var/log/program_monitor/*.log | head -1)
echo "2"
echo "$latest_log"
date_str=$(echo $latest_log | cut -d'/' -f5 | grep -oE '[0-9]{8}')
echo "3"
echo "$date_str"
latest_time=$(date +%Y%m%d)
echo "4"
echo "$latest_time"
latest_time=$(date +%Y%m%d) # 重新获取当前时间
if [ "date_str" == "latest_time" ]; then
echo "5"
echo ---------$(date)---------- >> $log_file
else
touch ${log_file}
fi
else
touch ${log_file}
echo "6"
fi
```
这样,每次运行脚本都会重新获取当前时间,确保latest_time的值是最新的。
阅读全文