修复 shell 脚本以增加 semversion [重复]

2023-12-22

我从未使用过 shell (bash),但在脚本中发现了一些错误,我用它来增加版本。脚本工作正常,直到这种情况

version=1.27.9
echo $version | awk -F. -v OFS=. 'NF==1{print ++$NF}; NF>1{if(length($NF+1)>length($NF))$(NF-1)++; $NF=sprintf("%0*d", length($NF), ($NF+1)%(10^length($NF))); print}'

1.28.0  <-- result, but I need 1.27.10

在这种情况下new_version将等于1.28.0。如何更改此脚本以避免增加 MINOR 数字?对于这种情况我期待1.27.10

我没有 shell 经验,所以不知道从哪里开始。我在这里找到了这个脚本并使用它。请帮助我解决我的问题。先感谢您。


EDIT:要仅更改次要版本,请尝试以下操作。

echo "$version" | awk 'BEGIN{FS=OFS="."} {$3+=1} 1'

解释:对上面的代码添加解释。

echo "$version" |           ##using echo to print variable version value here and passing it to awk program.
awk '                       ##Starting awk program from here.
BEGIN{                      ##Starting BEGIN section of this awk program here.
  FS=OFS="."                ##Setting FS and OFS as dot(.) here for all lines of Input_file.
}
{
  $3+=1                     ##For every line of Input_file adding 1 to 3rd field and saving output to $3 itself.
}
1                           ##Mentioning 1 will print edited/non-edited lines here.
'


您能否尝试按照最后(次要)版本更改中间版本,OP确认不需要但我第一眼看到这个要求就明白了。

echo "$version" | awk 'BEGIN{FS=OFS="."} {$3+=1;if($3>9){$2+=1;$3=0}} 1'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复 shell 脚本以增加 semversion [重复] 的相关文章

  • 如何获取视频时长(以秒为单位)? [复制]

    这个问题在这里已经有答案了 如何获取以秒为单位的视频时长 我尝试过的 ffmpeg i file flv 2 gt 1 grep Duration Duration 00 39 43 08 start 0 040000 bitrate 38
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 如何使用 git hook pre-merge-commit 获取原始合并分支名称

    我正在尝试使用新的 git hook pre merge commit 创建一个特定的脚本 但它没有参数 有什么解决方法可以让我获得正在合并的分支的名称吗 例子 在分支 myBranch 上 我调用 git merge testingBra
  • 退出代码大于 255 — 可能吗?

    如果是 在哪个操作系统 shell 或其他操作系统上 考虑以下 Java 程序 我使用 Java 只是作为示例 任何语言都适合这个问题 这更多地与操作系统有关 public class ExitCode public static void
  • 使用 sed 查找并替换包含非转义字符的变量

    我可以使用它来查找 fly 的所有实例 并将其替换为文件中的 insect sed i s fly insect g animals txt 如何找到 BASH 变量并将其替换为另一个 BASH 变量 例如 name echo fly ca
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 类似 jq 中的 sql join

    我有以下 json id 1 type folder title folder 1 id 2 type folder title folder 2 id 3 type item title item 1 folder 1 id 4 type
  • 将以反斜杠结尾的行与下一行 awk 连接起来(来自著名的 awk 单行解释)

    这个练习来自于Peteris Krumins 的博客文章解释了 AWK 的俏皮话 http www catonmat net blog awk one liners explained part two 本质上是这条线 awk sub ge
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • 当我尝试在 .bashrc 中添加命令时出现命令未找到消息

    我问了一个问题如何在 bash shell 中编写漂亮优雅的 linux 命令 https stackoverflow com q 19720095 80353 当我尝试该建议时 我收到以下错误消息 Sorry command not fo
  • 如何使用 docker ENTRYPOINT 与 shell 脚本文件组合参数

    我编写 shell 脚本文件并将其与 docker ENTRYPOINT 一起使用 但是当我运行 docker image 时 由于入口点代码行 它只是停止而没有任何错误日志 我的 Dockerfile FROM ubuntu 16 04
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • 通过 bash 命令设置 gitlab-ci.yml 变量

    variables CUSTOM NODE VERSION cat nvmrc 我想要变量CUSTOM NODE VERSION通过内容填充 nvmrc文件 位于项目根目录中 如何在gitlab ci yml file 上面的例子不起作用
  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用
  • 如何在 Bash 中按自然顺序循环文件?

    我使用以下命令循环目录中的所有文件 for i in fas do some code done 不过 我按这个顺序得到它们 vvchr1 fas vvchr10 fas vvchr11 fas vvchr2 fas 代替 vvchr1 f
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用

随机推荐

  • UILocalNotification 未触发

    I am very对 Cocoa Touch 和 Objective C 很陌生 但我已经掌握了相当重要的要点 并且正在尝试使用 UIKit 我有一个链接到按钮的操作 该按钮更改标签并触发 UILocalNotification 这是操作方
  • 将“puts”命令输出重定向到日志文件

    我正在使用 daemons gem 在 Ruby 中创建一个守护进程 我想将守护程序的输出添加到日志文件中 我想知道重定向的最简单方法是什么puts从控制台到日志文件 如果您需要捕获 STDERR 和 STDOUT 并且不想诉诸日志记录 s
  • .Net Excel Interop 删除工作表

    我正在尝试使用互操作 Excel 类 适用于 excel 2003 从 Net c 3 5 应用程序的 Excel 文档中删除工作表 我尝试了很多事情 例如 Worksheet worksheet Worksheet workbook Wo
  • 如何在Supervisor服务中设置环境变量

    如何在Supervisor执行的命令中导出环境变量 我首先尝试 command export SITE domain1 python manage py command 但主管报告 找不到命令 然后我尝试了 command bin bash
  • 在react中从json获取本地图像路径

    如何选择图片的本地路径 Json avatarUrl avt1 jpg 所有图片都在下面来源 gt img文件夹 我正在寻找 json 中的绝对路径 图像名称 我怎样才能实现这个目标reactJs img src width 60 包 js
  • 在ubuntu上编译protobuf客户端代码,但找不到包含文件

    我刚刚在我的 ubuntu1604 上安装了 google protocol buffer sudo apt install protobuf compiler 并尝试了快速测试 1个proto文件 1个cpp文件来使用它 尝试查看编码 解
  • Launch4J 插件创建一个 EXE(以及 JAR),但 EXE 在 Spring boot 中找不到主类

    我编写了一个插件 在 Launch4J 插件的帮助下为我的项目创建 EXE 和 JAR 但是 在执行 EXE 文件时 我收到错误 Error Could not find or load main class 但是 我通过提供来运行 JAR
  • 在 Android 上通过 bash 脚本启用/禁用 wifi

    我正在尝试在 bash 脚本中启用 禁用 Android 设备中的 wifi 设备 我正在使用终端仿真器和程序脚本管理器在手机 是 root 的 Nexus One 上执行 bash 脚本 在linux中执行此操作的正常方法是这样的 ifc
  • 我在哪里可以找到一些“hello world”-简单的美丽汤示例?

    我想用 Beautiful Soup 做一个非常简单的替换 假设我想访问页面中的所有 A 标记并将 foo 附加到它们的 href 中 有人可以发布或链接到如何做这样简单的事情的示例吗 from BeautifulSoup import B
  • function_exists 返回 false 但声明抛出错误

    在 PHP 5 3 6 中 我有一个类 其方法如下 public function chunkText if function exists unloadChunkText function unloadChunkText 其中 unloa
  • java中浮点数和双精度数有多少位有效数字?

    float 是否有 32 位二进制数字 double 是否有 64 位二进制数字 该文档太难理解了 所有位都转换为有效数字吗 还是小数点的位置占用了一些位 float 32 bits 4 bytes where 23 bits are us
  • Javascript 中“new”关键字的限制

    我有这个JS代码 var A A new function n return new Array n 它在所有浏览器中都运行良好 但是当我尝试用它来混淆它时混淆器 http javascriptobfuscator com 它显示一个错误
  • 从另一个 Dart 程序运行交互式 Dart 程序

    我有一个相当长的命令行程序 需要用户输入参数 然后使用这些参数进行处理 我想做的是将程序分为交互式和非交互式 我尝试这样做 并打算让非交互式程序 调用 交互式程序并使用结果 参数 根据这些参数进行处理 程序的非交互部分在处理时将结果显示在控
  • 无法查看 Xcode 4.2 帮助“index.html”被锁定以进行编辑

    当我尝试在 Xcode 中搜索文档时 出现以下错误 index html 已被锁定进行编辑 您可能无法保存更改 你想解锁它吗 index html 目前已被锁定 因为它不支持编辑 文件 index html 无法解锁 无法向该文件添加写入权
  • AWS RedShift - .NET Core(ODBC 支持?)

    如何使用 NET Core 连接 AWS RedShift 并运行查询 请提供代码示例 我已经阅读了 AWS 文档和 Net Core 文档 但没有运气 这个答案是针对特定时间点的 不会过时 EntityFramework Core 项目是
  • Google Map APi 缩放栏未显示

    Google 地图 api 没有完全显示缩放栏和图像类型 而是仅显示用于放大和缩小的加减按钮以及用于选择地图类型的下拉按钮 网址是http booking smanager net design index php lv 2 http bo
  • Python - 获取浏览器重定向到的url

    我正在尝试使用 API 验证应用程序 就是这样 我正在使用打开一个 URLwebbrowser open 用户对应用程序进行身份验证 并被重定向到另一个 URL 即 https stackexchange com oauth login s
  • 递归下降解析器和函数式编程

    所以最近我一直致力于编写一个简单的编译器 以更好地理解编译器概念 作为 stackoverflow 的忠实读者 似乎有一个共识 用函数式语言编写编译器比命令式语言更容易 为此 我想尝试一下杀两只鸟 用 F 编写一个编译器 既学习函数式语言
  • 如果ListBox包含,则不添加

    我有一个方法 FillListBox 我从不同的地方调用这个方法 但有时会发生这种情况 东西被加载了两次 现在我正在尝试做类似的事情 if listBox Items 1 ToString hello DO NOT FILL else FI
  • 修复 shell 脚本以增加 semversion [重复]

    这个问题在这里已经有答案了 我从未使用过 shell bash 但在脚本中发现了一些错误 我用它来增加版本 脚本工作正常 直到这种情况 version 1 27 9 echo version awk F v OFS NF 1 print N