首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

linux shell 编程 取得 时间 脚本

2012-07-03 
linux shell 编程 获得 时间脚本1. date 到 timestamp:-------------{aviar@monitor01:~/monitor}$ date -

linux shell 编程 获得 时间 脚本

1. date 到 timestamp:
-------------

{aviar@monitor01:~/monitor}
$ date -d '2009-12-01 23:20' +%s????
1259680800

2. timestamp 到 date
-------------

{aviar@monitor01:~/monitor}
$ date -d '1970-01-01 1259680800 sec utc'??????????
Tue Dec??1 23:20:00 CST 2009

?

?

时间的格式怎么写 可以看 man date

?

?

在inux的shell下获取时间戳一般用两种方法,一是直接调用系统变量;二是用纯shell脚本获取,举例如下

一,直接调用系统变量

获取今天时期:date +%Y%m%d`

获取昨天时期:`date -d yesterday +%Y%m%d`

获取前天日期:`date -d -2day +%Y%m%d`

依次类推比如获取10天前的日期:`date -d -10day +%Y%m%d`

注意以上中间有空格

二,自己用shell实现,如下例子是已知今天日期,推算出昨天的日期的shell

startdate=`date`
d1=`date '+%Y%m%d'`
if test ! "$1" = ""
then
d1=$1
fi
echo "TODAY IS ${d1}"
yesterday()
{
YEAR=`expr substr "${d1}" 1 4`
MONTH=`expr substr "${d1}" 5 2`
DAY=`expr substr "${d1}" 7 2`
if [ $DAY -eq 1 ]
then
if [ $MONTH -eq 1 ]
then
YEAR=`expr $YEAR - 1`
MONTH=12
else
MONTH=`expr $MONTH - 1`
fi
DAY=`echo \`cal $MONTH $YEAR\`|tail -n1|awk '{print $NF}'`
else
DAY=`expr $DAY - 1`
fi
d2=`echo "$YEAR $MONTH $DAY"|awk '{if (length($2)==1) $2=0$2;if (length($3)==1) $3=0$3;printf "%s%s%s",$1,$2,$3}'`
}
yesterday
echo "yesterday IS ${d2}"

?

?

?

========================================================

判断有没有参数,没有就提示, 有就执行

#/bin/bashif test ! "$1" = "" ; thendbname=$1echo "database ${dbname}  "datemysql -uroot -p1234 ${dbname}</base.sqlecho 'import base.sql done'dateelseecho 'no dbname'fi

?=================================================================

通过 /tmp 递归地搜索以找到含有字 IBM 的文件,而不是通过指向目录的链接进行递归搜索,请输入:
grep –R IBM /tmp

grep –r -H IBM /tmp
要通过 /tmp 递归地搜索以找到含有词 IBM 的文件,同时也通过链接进行递归搜索,请输入:
grep –r IBM /tmp

grep -R -L IBM /tmp
文件
/usr/bin/grep 包含 grep 命令。

?

热点排行