如何将代码逐字附加到 .bashrc?

如何将代码逐字附加到 .bashrc?

例如:安装时pyenv,您需要添加

export PATH="/home/user/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

到您的.bashrc文件中。

但是,通常echo '..' >> ~/.bashrc会在附加之前评估语句。如何使用命令行正确地将这些语句附加到文件中而无需评估?

答案1

我建议这里的文件

$ cat >> .bashrc <<'EOF'
export PATH="/home/user/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF

只要EOF引用该词(可以是任何词),就不会发生主体的外壳扩展。

答案2

但是,通常echo '..' >> ~/.bashrc会在附加之前评估语句。如何使用命令行正确地将这些语句附加到文件中而无需评估?

不会。单引号内的所有内容都是完全未评估。您可以放心使用,
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc 不用担心任何内容会被解释。单引号字符串中唯一有意义的字符是单引号(它结束字符串,并且不能转义。)

答案3

您可以\在特殊字符前面添加。

例如:

echo export PATH=\"/home/user/.pyenv/bin:\$PATH\"

得出以下结果:

export PATH="/home/user/.pyenv/bin:$PATH"

因此引号和$PATH仍然存在。

相关内容