我想在运行的安装脚本中将以下行附加到我的.zshrc文件的末尾:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
.zshrc文件只能由root进行只读访问,我是另一个用户(但是有sudo访问权限)。
一种方法与以下类似:
sudo bash -c "echo 'export PATH=\"$HOME/.rbenv/bin:$PATH\"' >> ~/.zshrc"
主要问题是$ HOME和$ PATH字段以及$()部分在被解释后的值替换后插入。我可以在外面放一个单引号,但我需要使用双引号,其中第一个单引号当前,然后解释内部。
如果没有在插入之前解释变量/命令,我会很感激如何做到这一点。 heredoc是一种更简单的方法吗?
答案 0 :(得分:1)
将\
放在$
之前:
sudo bash -c "echo 'export PATH=\"\$HOME/.rbenv/bin:\$PATH\"' >> ~/.zshrc"
答案 1 :(得分:0)
只需使用正确的引号即可。并且不要害怕在它们之间切换。
sudo bash -c "echo 'export "'PATH="$HOME/.rbenv/bin:$PATH"'"'" >> ~/.zshrc"