shell指令碼生成兩個資料日期之間的所有日期

2021-08-18 16:09:50 字數 963 閱讀 8852

在linux下有時候會需要得到兩個日期之間的所有日期,作為變數進行處理,例如兩個日期之間的所有日期都分別生成乙個用日期命名的資料夾。以下shell指令碼迴圈輸出兩個指定日期之間的所有日期(包括兩個輸入日期)。

#!/bin/bash

#以yyyymmdd格式輸出大於等於第乙個輸入日期,小於等於二個輸入日期的所有日期

begin_date=$1

end_date=$2

while [ "$begin_date" != "$end_date" ]

do echo $begin_date

let begin_date=`date -d "-1 days ago $" +%y%m%d`

done

echo $end_date

呼叫方式方式為: sh genedate.sh yyyymmdd yyyymmdd。

測試結果如下:

這裡關鍵在於date的使用,總結linux下date的一些常見使用方法如下:

date [選項]... [+格式]

date -d +%y%m%d                         輸出格式樣例:20180102

date -d +%f                                     輸出格式樣例:2018-02-01

date -d '+%f %a'                             輸出格式樣例:2018-02-10 星期六

date -d '+%f %w'                             輸出格式樣例:2018-02-10 6

date -d '-n days ago' +%y%m%d    yyyymmdd格式今日前第n天的日期

Linux中使用shell指令碼生成隨機數

1.主體思想 為了實現隨機數的隨機性,所以在這裡借用date中的 s n可以輸出從1970年1月1日00 00 00到目前經歷的秒數,從而產生變化的數字,再通過已知的需要生成隨機數範圍,通過公式 time max min 1 min來得到 min,max 範圍內的隨機數。2.編寫過程 a.在使用者資...

Shell指令碼生成網頁版相簿瀏覽器

今天學到了一招,那就是使用指令碼製作一款網頁版相簿瀏覽器。先上圖吧。不同的linux發行版包管理軟體可能不一樣,請按照自己的情況使用 sudo apt get install imagemagick sudo apt get install rarrar 解壓縮工具不是必須的,因為我本機的windo...

指令碼生成golang資料庫介面

因為 golang 提供了 database sql 的標準,所以只需要用一套指令碼就可以應用於不用的資料庫 原始碼位置 其他引數都好理解,其中 dbtype 就是 database sql 中的資料庫型別 如果是 mysql 資料庫,dbtype 填寫 mysql 如果是 sqlite 資料庫,d...