Добавление backtick (`) в вывод heredoc в команде оболочки

Мне нужно добавить модификатор подсказки cmd, PS1="..." в сценарии оболочки, который я настраиваю. Проблема в том, что я использую backtick для выполнения команды перед основной командой:

 sudo tee ~/.bashrc <<EOF # Display absolute path in cmd line, cmds on new line PS1='\[`[ $? = 0 ] && X=2 || X=1; tput setaf $X`\]\h [\u]\[`tput sgr0`\]:$PWD\n\$ ' EOF 

cat ~/.bashrc дает:

 # Display absolute path in cmd line, cmds on new line PS1='\[\]\h [\u]\[\]:/Users/myuser/Library/Application Support/Sublime Text 3/Packages/User\n$ ' 

nano ~/bashrc дает:

 PS1='\[^[[32m\]\h [\u]\[^[(B^[[m\]:/Users/myuser/Library/Application Support/Sublime Text 3/Packages/User\n$ ' 

Это явно означает, что все в обратном направлении неправильно читается. Как я могу избежать обратного хода или иначе написать строку, которая включает обратную сторону в файл с помощью оболочки?

One Solution collect form web for “Добавление backtick (`) в вывод heredoc в команде оболочки”

В документе здесь, как вы его написали, оболочка будет расширять параметры ( $PWD будет расширяться до пути к текущему каталогу во время разбора скрипта, например), подстановка команд («обратные шаги» «будет выполняться, и всякая команда, созданная вами, будет вставлена ​​вместо них во время разбора здесь-документа) и арифметического расширения (ничто из этого в вашем случае).

Если вы этого не хотите, то есть хотите, чтобы содержимое этого документа было доставлено как есть, вы можете сделать это:

 tee -a "$HOME/.bashrc" <<'EOF' # contents of here-document here EOF 

Апострофы вокруг EOF на первой линии не позволяют оболочке расширять что-либо в этом документе.

  • Использование CSV-строки в качестве параметров команды
  • Чувствительность к регистру в квадратных скобках
  • sed и sudo с заменой строки
  • Awk: печать последних N столбцов, где N передается через переменную
  • Сценарий интерпретатора сценариев CentOS 7
  • указать оболочку для сеанса ssh
  • Как удалить строку с заданным словом, используя функцию SED
  • Как создать новые процессы для новых экземпляров одного и того же сценария оболочки?
  • Я хочу скопировать удаленный файл txt через SSH, но без использования корневого доступа
  • Loop до тех пор, пока grep не найдет текст в файле
  • Как закрепить файл и сохранить его в другом каталоге
  • Linux и Unix - лучшая ОС в мире.