如何从linux中的用户读取日期并在svn日志中使用该日期

时间:2014-01-03 14:28:17

标签: linux shell svn date scripting

我是shell脚本新手。 我想编写一个shell脚本,以格式yyyy-mm-dd从终端获取用户的日期,并使用该日期作为开始日期,以获取特定日期范围内svn存储库中的修订更改。

我的脚本是:

echo "Date"
echo "Enter year"
read Y
echo "Enter month"
read M
echo "Enter Date"
read D
D1=`expr $D + 3`
svn log -r {$Y-$M-$D}:{$Y-$M-$D1} http://svn.abc.com/svn/trunk.

这是我写的剧本。

我知道我应该使用日期功能而不是Y M D. 而且我想仅列出修订号而不是完整的日志消息,如svn log命令所示。

1 个答案:

答案 0 :(得分:1)

我会使用date实用程序进行验证:

while true; do
    read -p "Enter a date (YYYY-mm-dd): " user_date
    if date=$(date -d "$user_date" +%F); then 
        # user date was ok
        break
    fi
done
date3=$(date -d "$date + 3 days" +%F)
svn log -r "$date:$date3" ...

你真的需要使用date,特别是要添加3天:你不想最终得到“2014-02-30”