我是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命令所示。
答案 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”