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/bash if test ! "$1" = "" ; then dbname=$1 echo "database ${dbname} " date mysql -uroot -p1234 ${dbname}</base.sql echo 'import base.sql done' date else echo '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 命令。