При установке значения первичной командной строки (PS1) следуют два случая

export PS1="\u"
export PS1="\\u"

дает тот же результат:

root

в виде строки командной строки. Чем отличаются \u и \\u если оба результата идентичны? Разве \\u выводит просто \u поскольку \\ обозначает саму обратную косую черту?

1 ответ1

1

В строках в двойных кавычках Баша, в обратном косых сохраняются , если следующий символу не нужен вытекающие (только " $ \ должны быть экранированы).

  • Например, foo="\$bar" приведет к $bar потому что $ нужно экранировать.
  • Однако, foo="\%bar" приведет к \%bar потому что % не нужно экранировать.

Таким образом, и PS1="\u" и PS1="\\u" приведут к тому, что $ PS1 будет иметь значение \u .


Код \u внутри $ PS1 расширяется до вашего имени пользователя гораздо позже - не при назначении переменной, а каждый раз, когда отображается приглашение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .