Я использую Ubuntu 16.04 LTS. У меня вопрос о настройке PS1 и использовании одинарных кавычек. Я тренируюсь, чтобы изменить подсказку. Итак, я последовал примеру в книге, затем я столкнулся с любопытством.
Пример ниже:
user1@myubuntu:~$ PS1='$PWD '
/home/user1
Я узнал, что одиночные кавычки создают специальные символы (например, $, ``, \ и т. д.) к общим символам.
Итак, я думаю, что подсказка над выражением должна выглядеть следующим образом:
user1@myubuntu:~$ PS1='$PWD '
$PWD
Почему специальный символ ($) все еще работает в одиночных кавычках? [ ! d4]
Bash (и другие оболочки) не печатают PS1 as-is. Они интерпретируют его и отображают вывод. Например, Bash расширяет различные специальные коды, такие как \u, \w и т. Д., А затем (из руководства Bash, «Управление запросом»):
После того, как строка декодируется, она расширяется через расширение параметра, подстановку команд, арифметическое расширение и удаление цитат, при условии значения параметра оболочки promptvars (см. Bash Builtins).из руководства Bash, Управление запросом (т. е. расширение переменной) означает, что строка, подобная $PWD в PS1, расширяется. Если вы хотите показать обычную $PWD в приглашении, выполните одно из следующих действий:
PS1='\$PWD '
# or
shopt -u promptvars
PS1='$PWD '
Bash (и другие оболочки) не печатают PS1 as-is. Они интерпретируют его и отображают вывод. Например, Bash расширяет различные специальные коды, такие как \u, \w и т. Д., А затем (из руководства Bash, «Управление запросом»):
После того, как строка декодируется, она расширяется через расширение параметра, подстановку команд, арифметическое расширение и удаление цитат, при условии значения параметра оболочки promptvars (см. Bash Builtins).из руководства Bash, Управление запросом (т. е. расширение переменной) означает, что строка, подобная $PWD в PS1, расширяется. Если вы хотите показать обычную $PWD в приглашении, выполните одно из следующих действий:
PS1='\$PWD '
# or
shopt -u promptvars
PS1='$PWD '
Bash (и другие оболочки) не печатают PS1 as-is. Они интерпретируют его и отображают вывод. Например, Bash расширяет различные специальные коды, такие как \u, \w и т. Д., А затем (из руководства Bash, «Управление запросом»):
После того, как строка декодируется, она расширяется через расширение параметра, подстановку команд, арифметическое расширение и удаление цитат, при условии значения параметра оболочки promptvars (см. Bash Builtins).из руководства Bash, Управление запросом (т. е. расширение переменной) означает, что строка, подобная $PWD в PS1, расширяется. Если вы хотите показать обычную $PWD в приглашении, выполните одно из следующих действий:
PS1='\$PWD '
# or
shopt -u promptvars
PS1='$PWD '