Обертывание строки PS1 с проблемой цветов

Вы не можете этого сделать.

Файл - это просто поток байтов, хранящихся (на HDD / memory). Вы читаете эти байты и интерпретируете их так, как хотите. В случае csv-файла вы читаете одну строку и разделяете ее на основе разделителя.

Концепция чтения происходит только от ОС. Где вы помечаете файл как прочитанный только для того, чтобы пользователи без надлежащего разрешения не редактировали файл.

При написании программы вы открываете файл в режиме только для чтения, используя опцию r, это всего лишь способ сообщить, что вы не собираетесь писать что-либо в файл, а fwrite не должно быть разрешено (throw исключение) в этом потоке.

То, что вы просите, состоит в том, чтобы сделать определенные байты файлов только для чтения, в то время как другие должны быть доступны для редактирования. ОС или файловый поток не имеют никакого различия между ними.

32
задан Aupajo 5 December 2008 в 01:00
поделиться

2 ответа

Получил его, должен был выйти из цветов правильно.

Зафиксируйте:

PS1='\u:\W$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '
49
ответ дан 27 November 2019 в 17:54
поделиться

Могу я предложить следующий метод для цветов в Bash, он делает код более читаемым и намного сложнее пропустить один или два выхода.

Поместите следующее в свой ~ / .bashrc

BLACK=$(tput setaf 0)
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
LIME_YELLOW=$(tput setaf 190)
YELLOW=$(tput setaf 3)
POWDER_BLUE=$(tput setaf 153)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
WHITE=$(tput setaf 7)
BRIGHT=$(tput bold)
NORMAL=$(tput sgr0)
BLINK=$(tput blink)
REVERSE=$(tput smso)
UNDERLINE=$(tput smul)

Примером PS1 (или всего, что выводится на экран) будет:

 PS1="\[${WHITE}\](\[${YELLOW}\]\u@\h\[${WHITE}\])\[${NORMAL}\]$ "

Вам нужно только поместить \ [\] вокруг слов цвета.

Если у вас 256-цветной терминал, вы можно поэкспериментировать с другими числовыми значениями до "tput setaf" вплоть до 255.

23
ответ дан 27 November 2019 в 17:54
поделиться
Другие вопросы по тегам:

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