Mam następujący monit w bash, który pokazuje bieżącą gałąź git:
PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc
co działa, gdy źródłem .bashrc, ale nie kiedy zmieniam gałąź, więc PS1 var jest oceniany tylko po źródle .bashrc, ale powinien być oceniany za każdym razem, gdy wyświetlany jest nowy monit. Jak można to osiągnąć dzięki wersji bash 4.3?
bash: command substitution: line 1: syntax error near unexpected token
) 'bash: podstawienie polecenia: wiersz 1:git_prompt)'
oldPS1="$PS1"
), a następnie spróbuj:PS1='$(git_prompt) '
Naprawiłem to teraz, używając tego jako zachęty
zanim połączyłem wiele ciągów w jeden ciąg PS1, wydawało się, że jest problem. Sztuczka polega na napisaniu
\
przed obliczeniem polecenia za pomocą$(git_prompt)
.Tak
$(git_prompt)
będzie oceniany, gdy.bashrc
jest oceniany i\$(git_prompt)
będą oceniane za każdym razem, gdy zostanie wyświetlony nowy monitźródło
"
wokół ciągu. Używanie\$(git_prompt)
bez nich nie działa.wypróbuj pojedynczy cytat w swoim ps1
Sugeruję również moją funkcję psOne
źródło
Chcesz zobaczyć szaleństwo? Oto jak konstruuję mój monit bash:
Nie jestem wielkim fanem kolorów.
źródło