linuxshelldate
Ⅰ 為什麼linux的執行shell程序和bash命令日期不顯示
你echo後面的字元打錯,不是單引號 而應該是反引號。 當你echo 後面是指令的時候 就需要反引號
Ⅱ 如何正確在Linux Shell腳本中定義一個時間變數
1、創建腳本 test.sh,並入截圖內容。
Ⅲ linux shell編程中怎麼判斷時間相等
#!/bin/bash#格式化過期日期,格式化過期日期完整時間以當前時間作為參考!expday="2018-04-11 `date +%T`"echo "Expire day is $expday"#當前日期時間格式為stamp時間戳todays=`date +%s`echo "Today is $(date +"%F %T")"#以下2種方式做時間的四則運算,分別使用 let 或者 $(( ))#過期日期已格式化,規避整數運算的誤差(去余數)#let dayDiff=($(date -d "$expday" +%s)-$todays)/86400dayDiff=$(( ($(date -d "$expday" +%s)-$todays)/86400 ))echo "Diff day is $dayDiff days!"
其餘說明:
bash 不支持浮點運算,如果需要進行浮點運算,需要藉助bc,awk 處理。Linux命令需求的話可如下圖進行查詢
Ⅳ 使用linux shell 命令date "+%Y-%m-%d %H:%M:%S" 後如何丟棄後面的秒數據
date "+%Y-%m-%d %H:%M:%S" | cut -d ":" -f1,2
Ⅳ linux shell腳本 每秒執行一次date輸出到/home/date中,想要每分鍾清空一下date文件 在腳本中怎麼加命令
這個需要使用計劃任務 crontab
cd /root
echo "echo >/home/date">>test.sh
chmod +x test.sh
echo "*/1* * * * root sh /root/test.sh" >>/etc/crontab
/etc/init.d/crond restart
Ⅵ LINUX SHELL日期轉換
這些都是單個的命令系統日期,時間date目錄pwd環境變數env網路配置ifconfig
Ⅶ linux Shell 幫忙解釋下set `date',month=$2,day=$3這些是什麼意思執行時日期怎麼傳參數進去
你確定腳本里是這么寫的嗎?
set命令作用主要是顯示系統中已經存在的shell變數,以及設置shell變數的新變數值
month=$2
這個命令是 把第二個參數的值賦值給變數 month 的意思
其他的同上
Ⅷ Linux下用shell獲取指定文件的最後修改時間並與系統時間比對,如果相差時間超過3分鍾則執行另一個腳本
使用date命令加上合適的時間格式化字元串(+%s),會顯示當前時間(或-d參數指定的時間)與1970-01-01 00:00:00相差的秒數(詳細可以參考date的man手冊)
所以基本想法就是使用date命令分別獲取當前時間與文件修改時間的秒數,然後看這2個秒數之間是否有相差180秒以上。
獲取當前時間比較簡單,直接date +%s就ok了
下面看看如何獲取文件時間
使用stat 命令後面跟一個文件名可以獲取文件的狀態,包括文件修改時間。其中文件修改時間會單獨一行顯示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具體的精度可能系統不同略微有些差別,但大致格式是這樣)
所以我們可以stat myfilename | grep Modify來獲取文件的修改時間的信息,然後通過awk分別獲取時間的日期和時間段
stat myfilename | grep Modify | awk '{print $2}' #這句獲取了日期段,即上面例子裡面的2013-02-21
stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #這句獲取了時間段,即上面例子裡面的17:58:05,具體關於awk的使用可以參考awk的使用手冊
那麼現在可以獲取文件修改時間與1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s
那麼這個時間與當前時間想減的結果與180相比就可以知道是否滿足條件了,滿足條件的話就可以執行相應的命令。
參考代碼如下:
current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi
Ⅸ linux shell 獲取是一個時間段的日期
1、date.sh代碼
#!/bin/sh
beg_date=`date -d "$1" +%s`
end_date=`date -d "$2" +%s`
if [[ -z $1 ]]||[[ -z $2 ]];then
echo "Usage: $0 YYYYMMDD YYYYMMDD"
exit 0;
fi
if [[ ${beg_date} > ${end_date} ]];then
echo "The end_date < beg_date ;Please input the right date,example: $0 20140101 20140301"
exit 0;
fi
for (( i=${beg_date};i<=${end_date};i=i+86400))
do
date -d @${i} +%Y%m%d
done
2、實例./date.sh 20140101 20140201
Ⅹ linux中,怎麼通過shell語句獲取當前日期,輸出格式要求20111224.
在Linux下,可以通過date語句來獲取當前日期:
輸入:date +%Y%m%d
輸出:20190314
命令實際執行情況如下圖:
(10)linuxshelldate擴展閱讀
GNU 對 date 命令的另一個擴展是 -d 選項,使用這個功能強大的選項,您可以完成很多有意義的工作。
1、快速地查明一個特定的日期究竟是星期幾:
輸入:date -d "nov 22"
輸出:2019年 11月 22日 星期五 00:00:00 CST
在本示例中,您可以看到今年(2019年)的 11 月 22 日是星期五。
2、獲得相對日期
-d 選項還可以告訴您,相對於當前日期之前或者以後的日期。
如,您需要了解兩星期以後的日期,那麼:
輸入: date -d "2 weeks"
輸出:2019年 03月 29日 星期五 00:12:24 CST
3、使用 next/last指令,您可以得到以後的星期幾是哪一天:
輸入: date -d "next monday" (下周一的日期)
輸入: date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
輸入: date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
輸入: date -d last-month +%Y%m(上個月是幾月)
輸入: date -d next-month +%Y%m(下個月是幾月)
4、使用 ago 指令,您可以得到過去的日期:
輸入: date -d "30 days ago" (30天前的日期)
5、您可以使用負數以得到相反的日期:
輸入: date -d "dec 14 -2 weeks" (相對:dec 14這個日期的兩周前的日期)
輸入: date -d "-100 days" (100天以前的日期)
輸入: date -d "50 days" (50天後的日期)