当前位置: 技术问答>linux和unix
请教一个shell脚本的问题
来源: 互联网 发布时间:2017-05-18
本文导语: 我有个time.txt文本文件保存了两个时间变量,比如内容如下: 201405140505 201405140606 前一个开始时间变量为:2014年5月14号5点5分 后一个结束时间变量为:2014年5月14号6点6分 要求写一个shell脚本,读time.txt这个文件,取...
我有个time.txt文本文件保存了两个时间变量,比如内容如下:
201405140505
201405140606
前一个开始时间变量为:2014年5月14号5点5分
后一个结束时间变量为:2014年5月14号6点6分
要求写一个shell脚本,读time.txt这个文件,取得开始时间变量201405140505,与系统时间比较,如果相同则执行a.sh. 同时取得结束时间变量201405140606,与系统时间比较,如果相同则执行b.sh.
请问该如何做呢?非常感谢。
201405140505
201405140606
前一个开始时间变量为:2014年5月14号5点5分
后一个结束时间变量为:2014年5月14号6点6分
要求写一个shell脚本,读time.txt这个文件,取得开始时间变量201405140505,与系统时间比较,如果相同则执行a.sh. 同时取得结束时间变量201405140606,与系统时间比较,如果相同则执行b.sh.
请问该如何做呢?非常感谢。
|
START_TIME=`awk 'NR==1' time.txt`
END_TIME=`awk 'NR==1' time.txt`
SYS_TIME=`date "+%Y%m%d%H%M"`
if [ "$START_TIME" == "$SYS_TIME" ]; then
./a.sh
else if [ "$END_TIME" == "$SYS_TIME" ]; then
./b.sh
fi
|
试试这个:
#!/bin/bash
FILE=time.txt
cur_time=$(date +"%Y%m%d%H%M")
line=$(grep -n $cur_time $FILE | cut -d":" -f1)
case "$line" in
1)
echo "a.sh" ;;
2)
echo "b.sh" ;;
*)
echo "nothing to do" ;;
esac
|
#!/bin/sh
fileName=$1
if [ -f $fileName ]
then
while read lineData
do
curDate=`date +'%Y-%m-%d %H:%M:%S'`
curDateTick=`date -d "$curDate" +%s`
lineDateTick=`date -d "$lineData" +%s`
if [ $lineDateTick -eq $curDateTick ]
then
echo "do someting"
fi
echo "line: "$lineData
done
fileName=$1
if [ -f $fileName ]
then
while read lineData
do
curDate=`date +'%Y-%m-%d %H:%M:%S'`
curDateTick=`date -d "$curDate" +%s`
lineDateTick=`date -d "$lineData" +%s`
if [ $lineDateTick -eq $curDateTick ]
then
echo "do someting"
fi
echo "line: "$lineData
done