これはやや表面的な(そして些細な)質問ですが、私以外の人にとっては役に立つかもしれません。私は ~/.bashrc の $PS1 変数をいじっていて、最初のプロンプトを他のすべてのプロンプトと少しだけ異なるものにする方法があるかどうか疑問に思っていました。具体的には、これまでに次のことを試しました。
PS1='\n\[\e[0;37m\][\[\e[0;35m\]\t\[\e[0;37m\]] \[\e[0;36m\]\u@\h \[\e[0;37m\][\[\e[1;34m\]\W\[\e[0;37m\]] \[\e[0;36m\]\$ \[\e[0m\]'
しかし、最初のプロンプトに先頭の改行を表示したくありません (これを拡張して、最初のプロンプトに詳細情報などを含めることもできます)。違いがあるかどうかはわかりませんが、gnome-terminal を使用しています。
これは本当に可能なのでしょうか? もし可能だとしたら、どのようにすればいいのでしょうか?
答え1
これを行う 1 つの方法は、bash の PROMPT_COMMAND を使用することです。たとえば、次のコードを ~/.bashrc に記述します (または、実験中にコマンド ラインで実行します)。
set_ps()
{
if [ -z "$PSFLAG" ]
then
# Set first prompt
PS1='first prompt: '
PSFLAG=1
else
# Set other prompt
PS1='other prompt: '
fi
}
PROMPT_COMMAND=set_ps
答え2
最初のプロンプトの前にいくつかの文字を出力し、それ以降は出力したくない場合は、単に.bashrc
それらを出力してみませんか?