web-dev-qa-db-ja.com

bashrcでユーザー入力の色を設定することは可能ですか?

実際のコマンドの出力ではなく、ユーザーの入力に特定の色(ユーザーがキーボードで入力した単語)のみを設定したいことに注意してください。

私は試した:

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

\033[mで閉じる必要があることはわかっていますが、挿入方法がわかりませんafter入力がstdinに送信されました。

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

これも機能しません。

これが必要な理由は、入力コマンドと出力コマンドを簡単に区別できるようにするためです。前もって感謝します。

2
Aleksandr Makov

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
9mjb

私はこれと他のいくつかのbash /ターミナルに一日中取り組んでおり、関連する質問を見つけて、リモートヘルプがあれば答えると考えました-したがって、以下の.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'

私はそれらを見つけたソースを含めようとしました!これが古いスレッドであっても、これが役立つことを願っています。

3
ehiller

私は考えていません入力コマンドとその出力に異なる色を付けることができます。いずれにせよ、PS1変数を設定してこれを行うことはできません。 PS1はプロンプトであり、入力した内容の左側に表示されるテキストです。例:

enter image description here

.Xdefaultsおよび/または.Xresourcesファイルを変更することにより、端末のデフォルトの色を変更できます。詳細については、 ここここここ をご覧ください。

1
terdon