Эффект цитаты при настройке PS1

Я использую Ubuntu 16.04 LTS. У меня вопрос по настройке PS1 и использованию одинарных кавычек. Я практиковался, чтобы изменить подсказку. Итак, я последовал примеру из книги, а затем столкнулся с любопытством.

Пример ниже:

user1@myubuntu:~$ PS1='$PWD '
/home/user1 

Я узнал, что одинарные кавычки делают специальные символы (например, $, ``, \ и т. Д.) Общими символами.

Итак, я думаю, что подсказка над утверждением должна выглядеть примерно так:

user1@myubuntu:~$ PS1='$PWD '
$PWD

Почему специальный символ ($) по-прежнему работает в одинарных кавычках?

2
задан 19 September 2017 в 15:39

1 ответ

Bash (и другие оболочки) не печатает PS1 как есть. Они интерпретируют его, и дисплей вывод. Bash, например, разворачивает различные специальные коды как \u, \w, и т.д., и затем ( из руководства Bash, Управление Подсказкой ):

После того, как строка декодируется, она расширена через расширение параметра, замену команды, арифметическое расширение и удаление кавычки согласно значению promptvars опция оболочки (см. Bash Builtins).

расширение Параметра (т.е. переменное расширение) означают, что строка как $PWD в PS1 расширена. Если Вы хотите показать плоскость $PWD в подсказке, сделайте любой из:

PS1='\$PWD '
# or
shopt -u promptvars
PS1='$PWD '
0
ответ дан 20 September 2017 в 01:39

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

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