shell按月迴圈取數

2022-03-04 15:08:15 字數 1432 閱讀 5161

這裡有個需求,按月查詢,並且要輸出每月的開始日期,結束日期。

shell指令碼如下:

#!/bin/sh

echo

"0個引數時, 按月執行,預設當前月份

"echo

"1個引數時, 按月執行,輸入月份格式:2019-02

"echo

"2個引數時, 按月執行,輸入月份格式:2019-01 2019-02

"if [ $# = 1 ]; then

start_month=$1

end_month=$1

elif [ $# = 2 ]; then

start_month=$1

end_month=$2

elif [ $# = 0 ]; then

start_month=`date +%y-%m`

end_month=`date +%y-%m`

fistart_sec=`date -d "

$-01

" +%s`

end_sec=`date -d "

$-01

" +%s`

while [ $start_sec -le $end_sec ]; do

day_curr=`date -d @$start_sec +%y-%m-%d`

month_curr=`date -d @$start_sec +%y-%m`

start_date=`date -d"

$-01""

+%y-%m-01

"` #月份開始日期

tmp_dt=`date -d"

$-01 +1 months""

+%y-%m-01

"`

end_date=`date -d "

$ -1 day""

+%y-%m-%d

"` #月份結束日期

echo

$month_curr $start_date $end_date

## 這裡放要處理的過程

## 123456

## 一次結束重置月份

let start_sec=`date -d "

$-01 +1 months

" +%s`

done

預設,不輸入引數時,執行結果:

輸入指定月份引數時:

輸入區間月份時:

這樣就完美了。

Shell中按月打包日誌小指令碼

linux中的各種web,資料庫,各種服務經常會按日產生大量日誌。運維的時候經常要做的就是按月來壓縮 歸檔。userweb.log.2011 1 1 userweb.log.2011 1 2 userweb.log.2011 2 1 userweb.log.2011 2 2 userweb.log....

shell 死迴圈if判斷 shell 死迴圈

例1 執行指令碼後會自動載入firefox瀏覽器,並開啟指定網頁。如果使用者關閉firefox,指令碼會再次自動重新開啟firefox。如需結束迴圈,中止t2.sh程序即可。注意不要同時執行兩個t1.sh指令碼,否則 若事先不知道指令碼名,也可以通過類似於 pstree grep firefox 的...

藍橋杯基礎練習 回形取數(迴圈)

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只...