Как добавить дословный код в .bashrc?

Например: при установке pyenv необходимо добавить

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

в файл .bashrc.

Тем не менее, обычный echo '..' >> ~/.bashrc будет оценивать утверждения перед добавлением. Как правильно добавить такие операторы в файл с помощью командной строки без оценки?

5
задан 7 May 2019 в 18:36

3 ответа

Я бы предложил здесь документ

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

Пока слово EOF (которое может быть чем угодно) заключено в кавычки, расширение тела не происходит .

0
ответ дан 7 May 2019 в 18:36

Вы можете добавить \ перед специальными символами.

Например:

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

дает следующий результат:

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

, поэтому кавычки и $PATH все еще там.

0
ответ дан 7 May 2019 в 18:36

Однако, обычный echo '..' >> ~/.bashrc оценит операторы перед добавлением. Как правильно добавить такие операторы в файл с помощью командной строки без оценки?

Нет, не будет. Все, что находится в одинарных кавычках, совершенно не оценено . Вы можете использовать
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc, не беспокоясь о том, что что-либо будет интерпретировано. Единственный символ любого значения в строке с одинарными кавычками - это одиночная кавычка (которая завершает строку и не может быть экранирована).

0
ответ дан 7 May 2019 в 18:36

Другие вопросы по тегам:

Похожие вопросы: