2015-10-19 2 views
2

Это мой сценарий, который устанавливает мой Баш PS1PS1 подстановки команд Баша не работает на окнах 10

# Reset 
Color_Off="\[\033[0m\]"  # Text Reset 

# Regular Colors 
Black="\[\033[0;30m\]"  # Black 
Red="\[\033[0;31m\]"   # Red 
Green="\[\033[0;32m\]"  # Green 
Yellow="\[\033[0;33m\]"  # Yellow 
Blue="\[\033[0;34m\]"   # Blue 
Purple="\[\033[0;35m\]"  # Purple 
Cyan="\[\033[0;36m\]"   # Cyan 
White="\[\033[0;37m\]"  # White 

# Bold 
BBlack="\[\033[1;30m\]"  # Black 
BRed="\[\033[1;31m\]"   # Red 
BGreen="\[\033[1;32m\]"  # Green 
BYellow="\[\033[1;33m\]"  # Yellow 
BBlue="\[\033[1;34m\]"  # Blue 
BPurple="\[\033[1;35m\]"  # Purple 
BCyan="\[\033[1;36m\]"  # Cyan 
BWhite="\[\033[1;37m\]"  # White 

# Various variables you might want for your PS1 prompt instead 
Time12h="\T" 
Time12a="\@" 
PathShort="\w" 
PathFull="\W" 
NewLine="\n" 
Jobs="\j" 

GIT_PS1_SHOWDIRTYSTATE="true" 

PS1="\n${BBlack}\[email protected]\h ${BRed}\w${BYellow}\$(__git_ps1 ' { %s }')${BGreen}\n$ " 

Он был прекрасно работает до вчерашнего дня, когда я решил обновить свой ноутбук к окнам 10.

Теперь это порождает эту ошибку:

bash: command substitution: line 1: syntax error near unexpected token `)' 
bash: command substitution: line 1: `__git_ps1 ' { %s }')' 

Любая идея о том, что вызывает эту ошибку?

ответ

9

Проблема заключается в завершении новой строки внутри ps1. Я нашел решение here. Изменил мой PS1 на:

PS1="\n${BBlack}\[email protected]\h ${BRed}\w${BYellow}\$(__git_ps1 ' { %s }')${BGreen}"$'\n$ ' 
+0

Хорошая находка. Я всегда предпочитал однострочное приглашение 'PS1 =" \ [\ e [0; 37m \] \ D {% R} \ [\ e [1; 34m \] \ h: \ w> \ [\ e [ 0m \] "' Дайте ему вращение (я использую темный xterm). –

+0

помог мне тоже, спасибо! пришлось изменить строку в Git \ etc \ profile, перезапустить консоль, работает как шарм. – FloppyNotFound

+0

Когда вы используете двойную кавычку для PS1 = «bla bla», она автоматически обновляется при входе и выходе из папки с реестром .git. Поскольку мой bash 4.3.42 (5) -release (x86_64-pc-msys) обновляется только при входе в конкретный каталог, а затем он застревает с именем ветки, даже если я меняю каталоги. – tvl

-1

Я думаю, что ошибка происходит здесь \$(__git_ps1.....

Это должно быть $(__git_ps1..... (без '\')

Я испытал это на (Windows 10/GIT 2,10. 2):

PS1="\n${White}\[email protected]\h ${BRed}\w${BYellow} $(__git_ps1 ' { %s }')${BGreen}\n$ ${Color_Off}" 

и нет проблем

Смежные вопросы