📜  rustup 每晚卸载 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:04:58.114000             🧑  作者: Mango

rustup 每晚卸载 - Shell-Bash

介绍

rustup 是 Rust 语言的官方工具链管理器,能够安装和升级 Rust 语言编译器和相关工具。在使用 rustup 进行 Rust 项目开发时,可能需要频繁切换不同版本的编译器,这是 rustup 的优势之一。然而,对于某些开发者来说,每晚都需要手动卸载旧版本的编译器也会变得很麻烦。

因此,有了这样一段 Shell-Bash 代码,可以帮助开发者每晚自动卸载旧版本的 Rust 编译器,使其的开发环境始终保持最新。

Shell-Bash 代码
#!/usr/bin/env bash

# 设置需要保留的最新版本数量
KEEP_NUM=5

# 获取已安装的 Rust 编译器版本列表
VERSIONS=$(rustup toolchain list | grep stable | awk '{split($0,a," "); print a[1]}')

# 获取已安装的 Rust 编译器版本数量
VERSIONS_NUM=$(echo "$VERSIONS" | wc -l)

# 如果安装的版本数量不足数量要求,则退出脚本
if [[ "$VERSIONS_NUM" -lt "$KEEP_NUM" ]]; then
  exit 0
fi

# 排序、反转列表
REVERS_VERSIONS=$(echo "$VERSIONS" | sort -r)

# 循环卸载旧版本的编译器
INDEX=0
echo "$REVERS_VERSIONS" | while read VERSION; do
  if [[ "$INDEX" -lt "$KEEP_NUM" ]]; then
    echo "Keep $VERSION"
  else
    echo "Uninstall $VERSION"
    rustup toolchain uninstall "$VERSION"
  fi
  INDEX=$(( INDEX + 1 ))
done
代码说明

这段代码首先设置了需要保留的最新版本数量 KEEP_NUM,默认为 5。然后获取了已安装的 Rust 编译器版本列表,只保留了稳定版本,并计算出已安装的 Rust 编译器版本数量 VERSIONS_NUM

如果已安装的 Rust 编译器版本数量不足数量要求,则退出脚本,否则将版本列表排序并反转,循环卸载旧版本的编译器,保留最新的 KEEP_NUM 个版本。

Markdown
# `rustup 每晚卸载` - Shell-Bash

## 介绍

`rustup` 是 Rust 语言的官方工具链管理器,能够安装和升级 Rust 语言编译器和相关工具。在使用 `rustup` 进行 Rust 项目开发时,可能需要频繁切换不同版本的编译器,这是 `rustup` 的优势之一。然而,对于某些开发者来说,每晚都需要手动卸载旧版本的编译器也会变得很麻烦。

因此,有了这样一段 Shell-Bash 代码,可以帮助开发者每晚自动卸载旧版本的 Rust 编译器,使其的开发环境始终保持最新。

## Shell-Bash 代码

```bash
#!/usr/bin/env bash

# 设置需要保留的最新版本数量
KEEP_NUM=5

# 获取已安装的 Rust 编译器版本列表
VERSIONS=$(rustup toolchain list | grep stable | awk '{split($0,a," "); print a[1]}')

# 获取已安装的 Rust 编译器版本数量
VERSIONS_NUM=$(echo "$VERSIONS" | wc -l)

# 如果安装的版本数量不足数量要求,则退出脚本
if [[ "$VERSIONS_NUM" -lt "$KEEP_NUM" ]]; then
  exit 0
fi

# 排序、反转列表
REVERS_VERSIONS=$(echo "$VERSIONS" | sort -r)

# 循环卸载旧版本的编译器
INDEX=0
echo "$REVERS_VERSIONS" | while read VERSION; do
  if [[ "$INDEX" -lt "$KEEP_NUM" ]]; then
    echo "Keep $VERSION"
  else
    echo "Uninstall $VERSION"
    rustup toolchain uninstall "$VERSION"
  fi
  INDEX=$(( INDEX + 1 ))
done
代码说明

这段代码首先设置了需要保留的最新版本数量 KEEP_NUM,默认为 5。然后获取了已安装的 Rust 编译器版本列表,只保留了稳定版本,并计算出已安装的 Rust 编译器版本数量 VERSIONS_NUM

如果已安装的 Rust 编译器版本数量不足数量要求,则退出脚本,否则将版本列表排序并反转,循环卸载旧版本的编译器,保留最新的 KEEP_NUM 个版本。