Чи можна встановити колір для вводу користувача в bashrc?


2

Зауважте, що я хочу лише, щоб вхід користувача мав певний колір (слова, які користувач вводив з клавіатури), а не фактичний вихід команди.

Я намагався:

export PS1="$ \033[38;5;154m"

Я знаю, що це має бути закрито, \033[mале я не маю поняття, як його вставити після того, як вхід буде надіслано до stdin.

export PS1="$ \033[38;5;154m$PS1\033[m"

Це також не працює.

Причина, чому я хочу, щоб це могло легко відрізнити команду введення від її вихідної. Заздалегідь спасибі.

Відповіді:


2

Bash не зможе пофарбувати всі дані користувача. UNIX є повнодуплексним, і всі відображені дані надходять з машини Unix, а не з локального емулятора термінала / клавіатури, тому емулятор терміналу (xterm?) Не може реально визначити різницю, і bash лише керує тим, що він робить, а не тим, що кожен програма робить.

Я використовую підказку іншого кольору.

e=$'\e'
COLORblue="$e[0;34m"
COLORred="$e[0;31m"
COLORreset="$e[0m"
PC="$COLORblue"
if [[ "$EUID" -eq 0 ]]; then PC="$COLORred"; fi
PS1="\[$PC\]#===> \@ %\j / \u @ \h : \w/\n#===> \\\$ \[$COLORreset\]"

# Print when exit status is not 0 -- I like this too... shown in red
export PROMPT_COMMAND="x0=\$?;if ((\$x0 > 0)); then echo '${COLORred}# exit status = '\$x0' -- From PROMPT_COMMAND$COLORreset'; fi"

Можливо, перевірте
https://stackoverflow.com/questions/6841143/how-to-set-font-color-for-stdout-and-stderr


2

Я працюю над цим та кількома іншими баш-термінальними речами цілий день, і подумав, що знайду відповідні запитання і відповім на них, якщо я можу отримати будь-яку віддалену допомогу - тому нижче .bashrc забарвить термінал команда вводу зелена, а вихід буде стандартним білим. Фон все ще чорний.

# ~/.bashrc: executed by bash(1) for non-login shells.

# Created by EDH automated script to set up terminal colors
# Ref: http://linux.die.net/man/1/echo
# Ref: https://www.kirsle.net/wizards/ps1.html#help
# Ref: https://wiki.archlinux.org/index.php/Color_Bash_Prompt
# Ref: http://linux.die.net/man/1/bash

# Note: reload settings w/o relogin; source ~/.bashrc

# for terminal line coloring
export PS1="\[$(tput sgr0)\]\[$(tput setaf 1)\]\u \[$(tput setaf 6)\]\w \[$(tput setaf 1)\]\\$ \[$(tput setaf 2)\]"
none="$(tput sgr0)"
trap 'echo -ne "${none}"' DEBUG

# ls dir coloring
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'

Я намагався включити джерела, де їх знайшов! Сподіваюся, це допомагає, навіть якщо це старіші теми.


1

Я не думаю, що ви можете отримати інший колір для команд введення та їх виводу. У будь-якому випадку, ви, звичайно, не можете цього зробити, встановивши PS1змінну. Це PS1підказка, текст відображається зліва від того, що ви вводите. Наприклад:

введіть тут опис зображення

Ви можете змінити кольори за замовчуванням терміналу, змінивши свій .Xdefaultsта / або .Xresourcesфайл. Подивіться тут , тут і тут, щоб дізнатися більше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.