背景
- 公司的几个ws项目有的go版本升级到了1.17,有的还是1.13,总需要在不同的项目之间切换构建,为了方便切换版本,写了个shell 脚本通过sed来编辑修改 .bash_profile文件,方便不同版本进行切换
切换脚本
cat /usr/local/tools/go_version.sh
#!/bin/bash
## sh ~/go_version.sh 17
## sh ~/go_version.sh 13
back_file=""
if (( "$(uname)"=="Darwin" )) ;then
# Mac OS X 操作系统 sed 替换配置文件版本 mac 需要 需要备份源文件 "_bak"
back_file="_bak"
elif (( "$(expr substr $(uname -s) 1 5)"=="Linux" )) ;then
# GNU/Linux操作系统
back_file=""
elif (( "$(expr substr $(uname -s) 1 10)"=="MINGW32_NT" )) ;then
# Windows NT操作系统
back_file=""
fi
file='/Users/admin/.bash_profile'
go17root='/usr/local/go/go17'
go13root='/usr/local/go/go13'
if (( "$1" == "17" )); then
sed -i "$back_file" "s#$go13root#$go17root#g" "$file"
elif (( "$1" == "13" )); then
sed -i "$back_file" "s#$go17root#$go13root#g" "$file"
else
echo "invalid arg"
fi
alias
- alias go17="sh /usr/local/tools/go_version.sh 17 "
- alias go13="sh /usr/local/tools/go_version.sh 13 "
切换
- go17 切换到17版本
- go13 切换到13版本
- source ~/..bash_profile
- go version 就能看到切换到对应版本了
gvm 切换
- 还有个gvm ,可以尝试
网友评论