這裡有個需求,按月查詢,並且要輸出每月的開始日期,結束日期。
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個整數,表示這個矩陣。輸出格式 輸出只...