1. 程式人生 > >shell整理(34)===date 命令的小腳本

shell整理(34)===date 命令的小腳本

shell  心得   思考

(一)接受一個輸入,判斷是不是一個日期,用戶的輸入可以是2017-10-1 或 2017.10.1 或2017/10/1


shell代碼如下

#!/bin/bash


read -p "Input:" date

a=`echo $date | awk -F‘[./-]‘ ‘{print $1"/"$2"/"$3}‘ `

date -d $a &>/dev/null

if [ $? -eq 0 ];then

echo "ok"

else

echo "no"

fi


(二)將日期寫入一個文本,判斷這個文本中的日期分別是這一年的哪一天。

例如

[[email protected] ding1]# cat file1

2017-10-1

2016-2-2

2017-1-1

[[email protected] ding1]#


shell代碼如下

str () {

# a=`echo $line | tr ‘/.-‘ ‘/‘`

a=`echo $line | awk -F "[./-]" ‘{print $1"/"$2"/"$3}‘`

date -d $a +%j


}

#set -x

cat file1 | while read line

do

str

done

#set +x



簡單的date 命令總結:

date -d <字符串> :顯示自符串所指的日期與時間。字符串前後加上雙引號,好像有的不加也可以,具體情況具體分析

例如:

[[email protected] ding1]# date -d 2017-1-1 +%j #加%j 表示該年中的第幾天

001

[[email protected] ding1]# date -d +%j

date: 無效的日期"+%j"

[[email protected] ding1]#

也就是說date -d 後面必須指定一個字符串。

[[email protected] ding1]# date -d 2017-1-1 #顯示字符串所指的時間與日期

2017年 01月 01日 星期日 00:00:00 CST

[[email protected] ding1]#

date +%F 顯示當前的時間,(年-月-日),例如:

[[email protected] ding1]# date +%F

2017-10-05

[[email protected] ding1]#

+%F 就相當於+%y-%m-%d

例如:

[[email protected] ding1]# date +%y-%m-%d

17-10-05

[[email protected] ding1]# date +%y*%m*%d #中間的符號自己定義

17*10*05

[[email protected] ding1]#

例如我要顯示下個月和下一年的今天

[[email protected] ding1]# date -d +1month +%y-%m-%d

17-11-05

[[email protected] ding1]# date -d +1year +%F

2018-10-05

[[email protected] ding1]#

date -s <字符串>:根據字符串來設置日期與時間,只有root權限才能設置,其他只能查看。字符串前後加上雙引號

[[email protected] ding1]# date

2017年 10月 05日 星期四 10:21:52 CST

[[email protected] ding1]# date -s 2012-5-23 01:01:10

date: 參數"01:01:10" 缺少前導的"+";

當使用選項來描述日期是,任何非選項參數都必須以"+"所引導的字符串出現

請嘗試執行"date --help"來獲取更多信息。

[[email protected] ding1]# date -s "2012-5-23 01:01:10" #這個地方加上雙引號

2012年 05月 23日 星期三 01:01:10 CST

[[email protected] ding1]# date

2012年 05月 23日 星期三 01:01:13 CST

[[email protected] ding1]#



本文出自 “IT生活” 博客,請務必保留此出處http://dingxue.blog.51cto.com/12290895/1970420

shell整理(34)===date 命令的小腳本