首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash将本地新版本与所需版本进行比较

Bash将本地新版本与所需版本进行比较
EN

Stack Overflow用户
提问于 2022-11-14 08:04:41
回答 1查看 38关注 0票数 1

我正在编写一个脚本,以确定本地的neovim版本是否低于所需的版本。我在PopOS 22.04上使用bash。

该脚本将用于开发环境设置,lunarvim要求Neovim版本为0.8.0+。

脚本的预期最终结果将完成三件事:

  1. 检查neovim是否已安装,
  2. (如果已安装),取出本地版本并与变量版本进行检查。
  3. (如果是旧版本)将卸载它。脚本的另一部分运行一个ansible剧本,以添加不稳定的新虚拟机存储库,然后安装新内容。

我尝试过各种迭代,使用ansible,dpkg,neovim -v,甚至试图缩短新-v的输出。任何帮助都是非常感谢的。

下面的bash版本是我尝试过的比较的最新变体。如果没有安装新nvim,我就会遇到这个错误,它将在第三行出现错误,并使用nvim:命令command (预期的错误)。之后,它将打印出最后的echo语句(意外输出)。

代码语言:javascript
复制
#!/bin/bash
has_nvim=$(command -v nvim >/dev/null)
nvim_version=$(nvim --version | head -1 | grep -o '[0-9]\.[0-9]')
if ! $has_nvim; then
  echo "Nvim is not installed"
elif [ $(echo $nvim_version >= 0.9 | bc -l) ]; then
     echo "Wrong version of Nvim is installed"
     sudo apt remove neovim -y
else
     echo "Nvim version 0.9 or greater is installed"
fi
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-14 09:34:09

如果未安装Nvim版本,则必须添加if/else情况下才能获得Nvim版本。

代码的固定版本:

代码语言:javascript
复制
#!/bin/bash

command -v nvim >/dev/null

if [[ $? -ne 0 ]]; then
    echo "Nvim is not installed"
else
    nvim_version=$(nvim --version | head -1 | grep -o '[0-9]\.[0-9]')

    if (( $(echo "$nvim_version < 0.9 " |bc -l) )); then
            echo "Wrong version of Nvim is installed"
            sudo apt remove neovim -y
    else
        echo "Nvim version 0.9 or greater is installed"
    fi
fi
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74428539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档