Linux系統時間格式錯亂,導致awk {print $9}命令出錯
ls -l命令顯示的格式不一致
以下四行,中間的二行日期時間顯示與前後不一致:
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
導致下面的命令抓到的參數時而正確時而為空
ermnewtmp=`ls -l --sort=time -r erm*.jar | awk '{print $9}'`
解決辦法:
通過參數格式化顯示日期的類型
ls -l --time-style=+%Y-%m-%d-%T | sort -k 6
按時間 反向排序
-rwxrwxrwx 1 root root 14364 2008-10-13-08:56:11 update.log
ls -l --time-style=+%Y-%m-%d-%T | sort -r -k 6
按大小從大到小排序
最後將腳本語句由
ermnewtmp=`ls -l --sort=time -r erm*.jar | awk '{print $9}'`
改為
ermnewtmp=`ls -l --time-style=+%Y-%m-%d-%T --sort=time -r erm*.jar | awk '{print $7}'`
問題解決了!
在此感謝~趙進~的幫助!