【发布时间】:2022-01-05 15:34:48
【问题描述】:
我是 BASH 的初学者 我正在尝试自动化以下过程:
- 获取发布版本 --> 文件“发布”
- 增加它
- 在同一个文件“release”中再次保存
- git 全部添加
- git commit "releaseX"
- git 推送
我将把这个文件称为 releaseit.sh
为此,我从以下代码开始: Extract version number from file in shell script
BASH:
read version < release
echo $version
echo ${version%.*}.$((${version##*.}+1))
如何将最后一行传递给变量并再次将其保存到发布文件中?
期望的结果: 如果发布包含 0.1.34,则将添加一个包含 0.1.35 的新发布文件并提交并推送。
【问题讨论】:
-
您可以使用
>将输出写入文件,因此如果您的最后一个echo打印在控制台中看起来正确,您只需将> release添加到该行的末尾(然后@ 987654326@). -
不要这样做。请不将版本号存储在文件中。 (尽管有这么多项目这样做,但这是一种糟糕的做法。)。不应将版本号存储在文件中,而应从 VCS 派生它。 (例如,通过
git describe) -
但它不允许我覆盖文件
-
@WilliamPursell 这不在我手中,我在一个系统中工作,其中发布由发布文件中存储的数字控制,只有当这个数字发生变化时,才会部署库的版本给大家。
-
@JFerro。你需要让在这个系统上工作的人相信这个系统已经坏了。将版本存储在这样的文件中是一个地雷。这是灾难的秘诀。这是一座漂浮的冰山,等待击沉你的船。该项目注定失败!