我正在尝试通过 bash 脚本从 psql 复制数据,现在我遇到了一个循环,我的 bash 脚本如下所示:
#!/bin/bash
DATEBEGIN=2016-03-01
DATEEND=2016-03-31
DATEMONTH=2016-03
echo "Copy data to /mnt/bigstorage/samples-$DATEMONTH.csv file, please wait..."
psql postgresql://XXX:XXX@localhost/XXX << EOF
COPY (SELECT *
FROM sample
WHERE timestamp >= '$DATEBEGIN' AND
timestamp <= '$DATEEND') TO '/mnt/bigstorage/backup/samples$DATEMONTH.csv' DELIMITER ',' CSV;
EOF
使用上面的脚本,我每次都需要更改月份,因为我们需要将数据复制到 2022 年,我如何循环遍历日期?例如每月但每天也可以。
通过以下脚本,我得到了天数列表,但我不知道如何实现这是我的脚本
start=2016-01-01
end=2022-01-01
while ! [[ $start > $end ]]; do
echo $start
start=$(date -d "$start + 1 day" +%F)
done
不知道我是否理解了这个问题,但你可以这样做: