增加存储在 bash 脚本文件中的版本文本

lag*_*lex 6 bash regex sed version

我有一个 bash 文件,我想在其中存储一个版本文本(最好是“ echo version 1.0.1”,以便在执行时自动打印出自己的版本)

我正在尝试创建一个将更新版本的命令组。

到目前为止我有

grep "echo version" ~/.bashrc | cut -c 14- | sed -e 's/\./\n/g'
Run Code Online (Sandbox Code Playgroud)

提取“echo version 1.0.1”,切出“echo version”并在点之间拆分版本

1
0
1
Run Code Online (Sandbox Code Playgroud)

并且我达到了正则表达式、bash 和 google-foo 的限制以提取最后一个数字(补丁版本),我可以将其递增并写回文件。

主要是,我如何获得最后一个数字?

另外,如果我应该做的更好,请提出建议。

Cyr*_*rus 6

awk -F'[ .]' '/^echo version/ {print $1,$2,$3"."$4"."$5+1}' ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

输出:

echo version 1.0.2
Run Code Online (Sandbox Code Playgroud)

-F'[ .]': 字段分隔符空白和点

/^echo version/: 搜索以 ( ^)开头的行echo version

print $1,$2: 打印由空格分隔的字符串

$5+1: 将字符串/值增加 1