最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell語言date的用法實例

 更新時間:2020年11月11日 14:28:52   作者:AsiaYe  
這篇文章主要介紹了shell語言關于date的一些用法,幫助大家更好的理解和學習shell語言,感興趣的朋友可以了解下

    今天沒干什么正事兒,都開了會了,寫點兒關于shell腳本語言的知識吧,這個也是前兩天完成一個業(yè)務方的需求的時候使用到的方法,分享出來,希望對大家有點用吧。

   首先,我們來看,date函數(shù)在shell中一般是怎么用的。這種最常見的,就是在腳本中需要輸出日志的時候,打印日志的生成時間,而打印的方法,我比較習慣于使用下面的方法:

LOG_FILE="/var/log/script.log"
exec 2>>${LOG_FILE}

function my_log()
{  
  local curtime=`date "+%Y-%m-%d %H:%M:%S"`
  echo "$curtime $*">> ${LOG_FILE}
}

   寫這樣一個my_log的函數(shù),然后每次需要打印log的時候,就使用這樣的函數(shù)my_log加上你想打印的內容,就可以直接進行打印了。

   在這個過程中,date函數(shù)的使用方法是生成指定格式的時間,舉個例子:

[root ~]# date "+%Y-%m-%d %H:%M:%S"
2019-11-05 22:27:59

當然,我們可以定義格式,例如,不要后面的%H:%M:%S或者只顯示當前的月份,那就變成了:

date "+%Y-%m-%d"  
--

date "+%m"

   如果你想獲取當天之前或者之后的某一天的時間,可以使用下面的方法:

[root ~]# date "+%Y-%m-%d" 
-11-05
[root ~]# date -d "1 days" "+%Y-%m-%d"           
-11-06
[root ~]# date -d "1 days ago" "+%Y-%m-%d" 
-11-04

  可以看到,想要前一天的時間,就直接輸入1 days ago就可以。這里解釋一下-d參數(shù),它代表的是使用字符串來顯示當前的時間。

   前兩天遇到的問題是需要去掉日期的前導0,也就是說,形如2019-11-05的日期,需要變?yōu)?019-11-5,這種類型,那么這個需求怎么實現(xiàn)呢?這里給出兩種方法:

方法一:

[dba_mysql@ /tmp]$cat test.sh
real_year=`date -d "2 days" "+%Y"`
real_month=`date -d "2 days" "+%m"`
real_day=`date -d "2 days" "+%d"`

real_date=`date -d "2 days" "+%Y-%m-%d"`
echo "真實的年月日:"$real_date

result_year=`expr $real_year + 0`
result_month=`expr $real_month + 0`
result_day=`expr $real_day + 0`

result_date=$result_year-$result_month-$result_day

echo "處理后的年月日:"$result_date

 輸出結果如下:

真實的年月日:2019-11-07
處理后的年月日:2019-11-7

   可以看到,這個過程中,是借助了expr這個數(shù)學上的計算方法,來講日期和月份都轉化成數(shù)字,這樣就去掉了前導的0,然后再通過字符串拼接的方法,最終得到去掉前導0的結果。

方法二:

real_year=`date -d "2 days" "+%Y"`
real_month=`date -d "2 days" "+%m"`
real_day=`date -d "2 days" "+%d"`

real_date=`date -d "2 days" "+%Y-%m-%d"`
echo "真實的年月日:"$real_date

result_year=`echo $real_year|sed 's/^0//g'`
result_month=`echo $real_month|sed 's/^0//g'`
result_day=`echo $real_day|sed 's/^0//g'`

result_date=$result_year-$result_month-$result_day

echo "處理后的年月日:"$result_date

  這種方法是使用了sed的方法,通過s方法替代掉以0開頭的字符串前面的0,從而讓結果中只保留非0開頭的數(shù)字。其核心是sed  's/^0//g',將以0開頭的字符串開頭的0去掉。

    除此之外,我們可以使用date的方法來獲取當前日期是一年中的第幾個周。這里給出了三個參數(shù)都可以給出結果,我羅列一下,大家可以比較一下不同。

date --help中有下面幾句話
%W  week number of year, with Monday as first day of week (00..53)
%U  week number of year, with Sunday as first day of week (00..53)
%V  ISO week number, with Monday as first day of week (01..53)

[dba_mysql@ /tmp]$date +%W

[dba_mysql@ /tmp]$date +%U

[dba_mysql@ /tmp]$date +%V

   這些方法中,%W是以星期一為一個周的第一天,%U是以星期天為一個周的第一天,%V是ISO的周表示方法,也是以星期一為一個周的第一天,不同的是,他沒有第0個周的概念。

   關于date的更多用法,還請大家使用date --help進行參考。

以上就是shell語言date的用法實例的詳細內容,更多關于shell date用法的資料請關注腳本之家其它相關文章!

相關文章

  • 常用的34個Linux?Shell腳本(小結)

    常用的34個Linux?Shell腳本(小結)

    本文主要介紹了常用的35個Linux?Shell腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Linux下一些常用的Shell腳本整理

    Linux下一些常用的Shell腳本整理

    這篇文章主要介紹了Linux下一些常用的Shell腳本整理,很基礎,印象不深的話隨看隨記:)需要的朋友可以參考下
    2015-07-07
  • ubuntu sublime中文輸入問題解決辦法

    ubuntu sublime中文輸入問題解決辦法

    這篇文章主要介紹了ubuntu sublime中文輸入問題解決辦法的相關資料,需要的朋友可以參考下
    2017-05-05
  • Shell腳本查看進程內存真實占用情況

    Shell腳本查看進程內存真實占用情況

    這篇文章主要介紹了Shell腳本查看進程內存真實占用情況,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12
  • win10下如何運行.sh文件的實現(xiàn)步驟

    win10下如何運行.sh文件的實現(xiàn)步驟

    這篇文章主要介紹了win10下如何運行.sh文件的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 使用iconv批量改變文件編碼的shell腳本

    使用iconv批量改變文件編碼的shell腳本

    在開發(fā)中,我們經常需要對N多文件編碼進行更改,iconv只能對單文件的進行更改,怎么辦呢?我們寫一個shell腳本來解決這個問題
    2014-08-08
  • Linux shell select菜單選擇實現(xiàn)代碼

    Linux shell select菜單選擇實現(xiàn)代碼

    主要介紹了Bash Shell中的select命令簡單使用示例,通常用于流程控制功能的實現(xiàn),需要的朋友可以參考下
    2021-07-07
  • 最新評論

    徐汇区| 晋中市| 陆良县| 金湖县| 凤冈县| 襄垣县| 密云县| 巩留县| 东兴市| 横山县| 蕲春县| 和硕县| 邵阳市| 苏尼特左旗| 沭阳县| 甘泉县| 清原| 房产| 宁蒗| 调兵山市| 正宁县| 吐鲁番市| 保山市| 苍南县| 健康| 图木舒克市| 崇州市| 东至县| 万宁市| 洱源县| 清新县| 黔东| 鄂伦春自治旗| 凤翔县| 株洲县| 措勤县| 兴安盟| 定襄县| 沂南县| 长宁县| 博罗县|