要使用源代码永久更新 ~/.profile,仅适用于手动输入。整个系统重启也不会更新 ~/.profile,我需要手动更新它。

是否有一种特殊的代码风格可以将其用作 bash/shell 脚本中的工作代码,或者这种特殊代码是否不适用于自动化脚本?

需要它来自动安装 golang。

在下面的代码中,“source ~/.profile”行将不起作用,并且没有任何错误消息,其余部分工作正常:

#!/bin/bash 
sudo apt update 
sudo apt -y upgrade 
cd ~ 
curl -O https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz 
tar xvf go1.12.5.linux-amd64.tar.gz 
sudo chown -R root:root ./go 
sudo mv go /usr/local 
cd ~ 
sudo rm go1.12.5.linux-amd64.tar.gz 
sudo echo "export GOPATH=\$HOME/work" >> ~/.profile 
sudo echo "export PATH=\$PATH:/usr/local/go/bin:\$GOPATH/bin" >> ~/.profile 
source ~/.profile 

请您参考如下方法:

首选:

获取脚本本身而不是运行它 - 然后脚本中的命令在当前 shell 中运行,包括 source ~/.profile.

备选方案(因为这会替换正在运行的 shell,历史记录、变量值和其他状态都将丢失。因此应该有一个非常使用此方法的充分理由):

使用 exec bash 或类似的东西代替 source ~/.profile - 这会用另一个实例替换当前正在运行的 Bash,该实例本身将加载新的 。配置文件


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!