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

标签 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 命令显示的完整日志消息。

最佳答案

我会使用 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”结尾

关于linux - 如何在 linux 中读取用户日期并在 svn 日志中使用该日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20905837/

相关文章:

linux - Linux 阻塞 I/O 实际上是如何工作的?

linux - 更改 Linux 时间来欺骗系统正常运行时间

string - 在 hive 中将多列连接成一列

node.js - 是否可以从 shell 脚本捕获 node.js 中的错误退出代码?

SVN:恢复随机修订的更改,但保留所有后续修订的更改

linux - 有人可以建议支持复杂数据的高性能共享内存 API 吗?

linux - 使用apache效率更高?

regex - sed - 在模式中包含换行符

git - 如何使用 reposurgeon 将 svn 存储库转换为 git?

svn - 无法在 Mac 中使用 git-svn