node.js - Semver 与 Bash

标签 node.js bash shell semantic-versioning

使用 bash 脚本,如果 Node 版本小于特定值,我想采取行动。

如何将 semver 版本与 Bash 进行比较?

类似于:

NV=$(node --version)

if [[ ${NV} < 5 ]]; then 
   # do something
fi

显然这不太正确

node --version 输出看起来像:

$ node --version
v6.9.5

最佳答案

您可以使用sort -V来比较版本,如this post中所述。 。一个非常好的单线。

或者,如果您不介意利用 debian 发行版(我在这里假设这个前提),您可以:

$ dpkg --compare-versions $(node --version | grep -Eo "([0-9]\.)+[0-9]+") lt 5
$ echo $?
$ 1

关于node.js - Semver 与 Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357945/

相关文章:

javascript - 如何解决nodejs javascript中的 `...`错误

javascript - Node.js 异步 forEach : thread-safe?

node.js - Jest - 包装在 promisify 中的模拟 zlib 函数不起作用

node.js - node.js 控制台有多宽?

linux - 如何grep特定时间范围内的一组文件

bash - 如何将 bash/zsh 参数转发到另一个 shell

shell - 如何检测我运行 shell 脚本的当前目录?

bash - (macOS Bash) 2个看似相同的字符串并不相等,仅显示与 "set -x"的差异

shell - 对制表符分隔文件中的所有 "cells"执行算术运算

linux - 可以给出用于下载的当前目录大小列表的 shell 命令是什么?