KornShellのカラープロンプト

KornShellのカラープロンプト

~によるとこのStackOverflow投稿、KornShellにカラープロンプトがある可能性があります。私は何をすべきか分からなかった。色を使用できます。

echo -e "\033[34mLinux\033[00m"

以下のように青い「Linux」出力が提供されます。

printf "\033[34mLinux\033[00m"

PS1ただし、エスケープコードをプロンプト変数に統合すると、エスケープされません。カラーチップを入手するにはどうすればよいですか?ビューには魅力的であるだけでなく、出力を視覚的に分析するのにも便利なカラーヒントがあります。

答え1

リテラルEsc文字を使用してCtrl-をv入力します(画面にEsc表示されます)。^[

PS1="^[[34mLinux^[[00m"

echoまたは、動作するコマンドの出力を使用します。

PS1="$(echo -e "\033[35mLinux\033[00m")"

答え2

PS1変数にリテラルエスケープ文字を入れる必要があります。 Ksh88、pdksh、mksh(旧バージョン)などのレプリカには、組み込み機能を除いて制御文字のリテラル構文はありませんprint。 Mkshはエスケープを理解しています\eが、pdkshは8進コードを期待しています\033

PS1=$(print '\033[34mLinux\033[00m')

ATT ksh93ではバックスラッシュでエスケープされたリテラル構文を導入しました$'…'(R39b以降mkshでも使用可能)。バックスラッシュエスケープを使用して、これらのリテラルに制御文字を入れることができます。

PS1=$'\e[34mLinux\e[00m'

答え3

私はmkshユーザーのためにこれを使いますshell

# custom prompt see http://comments.gmane.org/gmane.os.miros.mksh/126
PS1=$'\a\r\a\e[1;34m\a ^ ^  ^ ^ | \a\e[36m\a${USER:=$(ulimit -c 0; id -un 2>/dev/null || echo
\?)}@${HOSTNAME%%.*}\a\e[34m\a | ^ ^  ^ ^ | \a\e[0;33m\a$(local d=${PWD:-?} p=~; [[ $p = ?(*/) ]] || d=${d/#$p/~};
print -nr -- "$d")\a\e[1;34m\a |\n ^ ^  ^ ^ | \a\e[32m\a$(date +%H:%M)\a\e[34m\a | ^ ^ >>\a\e[0m\a '

&は少し異なりますshellroot

PS1=$'\a\r\a\e[1;34m\a ^ ^  ^ ^  ^   \a\e[31m\a${USER:=$(ulimit -c 0; \
    id -un 2>/dev/null || echo \?)}@${HOSTNAME%%.*}\a\e[34m\a  ^ ^  ^ ^  ^ ^  ^   \a\e[0;33m\a$(
        local d=${PWD:-?} p=~
        [[ $p = ?(*/) ]] || d=${d/#$p/~}
        print -nr -- "$d"
)\a\e[1;34m\a  ^ ^ \n ^ ^  ^ ^  ^   \a\e[32m\a$(date +%H:%M)\a\e[34m\a  ^ ^  ^ ^   \a\e[0m\a '

ここに画像の説明を入力してください。

特殊文字はコピーされないためこれはペーストビンペーストです。一般ユーザーとrootユーザーの場合。

答え4

以前の答えと他のソースのおかげで、次のような結果が得られました。

Korn シェルプロンプト:

PS1="$(echo "\033[32m`logname`\033[35m@\033[32m`hostname` \033[33m`pwd`\033[36m\n\$\033[0m")"

打撃の大きいヒント:

PS1="\[\e[32m\]\u\[\e[35m\]@\[\e[32m\]\h \[\e[33m\]\w\[\e[36m\]\n\$\[\e[0m\]"

彼らは次の形式で同じ色のヒントを提供します(例えば、私はQueen's Englishを使用しています)。

username@computername /current/working/directory
$

DOSと同等の機能(カラーオプションはありません)は次のとおりです。

prompt %username%@%computername% $P$_$G

これは作る:

username@computername /current/working/directory
>

">"は"$"を使用して"nixy"の代わりに"DOSsy"のままにします。ただし、刻印(「$」)が必要な場合は、次のようになります。

prompt %username%@%computername% $P$_$$

ログインアカウントに必要な権限がある場合は、「nixies」の前に「export」を永久に追加できます。

export PS1="..."

DOSsyを次に変更します。

setx PROMPT "%username%@%computername% $P$_$G"

または

setx PROMPT "%username%@%computername% $P$_$$"

関連情報