写一个脚本 shell 循环打印日期(可指定起始日期或默认日期),并返回天数
时间: 2024-11-20 07:36:22 浏览: 41
在Shell脚本中,你可以使用`date`命令以及循环结构来实现这个功能。这里有一个基本的例子,它将从当前日期开始每日打印日期,并计算经过的天数。如果你需要从特定的起始日期开始,只需调整`start_date`变量即可。
```bash
#!/bin/bash
# 定义默认的起始日期 (如果没提供则取当前日期)
current_date=$(date +%Y-%m-%d)
if [ "$1" ]; then
start_date="$1"
else
start_date=$(( $(date +%s) / 86400 - 1 )) # 使用Unix时间戳减去一天作为起始日期
fi
echo "开始日期: $start_date"
# 计算总天数并逐日打印
total_days=0
while [[ "$(date +%Y-%m-%d)" != "$start_date" ]]; do
echo "日期: $(date +%Y-%m-%d)"
((total_days++))
sleep 1 # 每隔一秒打印下一天,可以根据需求调整时间间隔
done
echo "总共过去了$((total_days))天"
```
要运行此脚本,你可以像这样输入:
```bash
./your_script.sh [起始日期]
```
如果你不提供起始日期,它会从昨天开始计算。如果你想从用户输入的日期开始,记得给脚本第一个参数。例如:
```bash
./your_script.sh 2023-01-01
```
请注意,你需要保存脚本到一个`.sh`文件(如`print_dates.sh`),然后在终端通过`chmod +x print_dates.sh`赋予执行权限,再运行它。
阅读全文