我正在创建一个bash脚本来设置Ubuntu 16.04 lts操作系统的下载、安装和其他操作,而不需要逐个输入每个命令。我必须在/etc/profile文件中编写代码以添加PATH环境变量。但是当我的代码执行到这一行时,会出现"Permission Denied"的错误信息。以下是我的代码:
sudo echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
bash: /etc/profile: Permission denied
你知道我该如何解决这个问题吗?
$PATH
被双引号包含,它将被当前shell替换,而不是在配置文件中保留原样。它需要用单引号或转义字符包含(如果使用sh -c
选项,则需要用两层引号/转义字符进行保护)。 - Gordon Davissonexport
吗?我在/etc/profile
中最终得到了单词 "export"。 - dangelexport
命令将变量导出到环境中;如果没有这个命令,你只是设置一个不会被子进程继承的 shell 变量。 - larskssudo sh -c "echo 'export PATH=\$PATH:/usr/local/go/bin' >> /etc/profile"
更好。 - Cliven