Bashの各コマンドの後に垂直スペースを追加するにはどうすればよいですか?
垂直方向のスペースを少し探して、notフルライン。線の高さの1/4または1/3で十分です。
[編集]追加するスペースは、コマンドと出力のバンドルの後にのみあります。コマンドと関連する出力の間の行は、引き続きデフォルトの間隔を使用します。例:do ls
、出力は通常の行間隔を使用して表示されます。出力の後でのみ、間隔を広げて、コマンドと出力のペアを次のコマンドと出力から明確に分離します。
これは、bashオプションというよりも「ターミナルアプリケーション」機能/構成オプションです。 Bashはフォントやスペースを認識しません。これは端末に関連するものです。
例:Mac Os Xのターミナルプログラムでは、行間のスペースを増やすことができます: http://osxdaily.com/2015/01/05/increase-line-spacing-terminal-mac-os-x/
それがあなたが探しているものである場合は、ターミナルプログラムをチェックして、これを構成できるかどうかを確認する必要があります。
編集:コマンド自体の出力後にプロンプトにスペースを追加するだけの場合は、次のことを試してください。
export PS1='\n\[\033[01;31m\]\u@\H:\[\033[02;36m\] \w \$\[\033[00m\] '
行全体が追加されます(\ n)が、何もないよりはましかもしれません。
私はこれらの線に沿って何かをサポートするターミナルエミュレーターを知りません。ターミナル(またはグラフィカルターミナルエミュレーター)の非常に基本的な概念は、テキストグリッドを操作することです。画面は同じサイズのセルのマトリックスに分割され、各セルには文字が含まれています。単純なテキストフローを印刷できますが、グリッド内でカーソルを任意に配置して、任意のセルの内容を上書きすることもできます。
特定の例外があります。 CJKレターは2つの隣接するセルを占有し、xtermは通常のレターを2倍の幅や2倍の高さで印刷することもサポートします(端末テスト以外で使用されているのを見たことがありません)が、それでも基本グリッドに揃えられます。
あなたが求めているのは、コンセプト全体を最初から再設計する必要があるでしょう。現在存在しない何らかの手段で任意の配置を許可し、以前に印刷された文字と部分的に重なる場所に文字が印刷された場合にどうなるかを理解します。
これにより、ターミナルエミュレータが提供するシステムよりもはるかに複雑なシステムになり、わずかなメリットが得られます。
コマンドの出力の終わりを目立たせるために私があなたに勧めることができるのは、これらの線に沿って、おそらく太字または斜体のフォントなど、特別な色のプロンプトを表示することです。
以下をファイルに入れます。
command1()
{
if [ "$BASH_COMMAND" != command2 ]
then
command_flag=1
fi
return 0
}
trap command1 debug
command2()
{
if [ "$command_flag" ]
then
echo ""
fi
command_flag=
}
Prompt_COMMAND=command2
command1
、command2
、およびcommand_flag
の名前を、入力する可能性が低い値に変更することをお勧めします。次に、そのファイルをsource
します。 (または、上記を.bashrc
に入れてください。)
trap command1 debug
コマンドを使用すると、コマンドを入力するたびにcommand1
関数が呼び出されます。 command1
関数は、command_flag
フラグを設定して、コマンドがあったことを示します。 (command1
関数は、ヒットしたときに呼び出されません Enter。)
Prompt_COMMAND=command2
により、シェルがcommand2
プロンプトを発行しようとするたびに、PS1
関数が呼び出されます。 command2
関数は、command_flag
フラグをチェックして、コマンドを入力したのか、それとも単に入力したのかを確認します。 Enter。コマンドを入力すると、command_flag
が設定され、command2
が画面に空白行を書き込みます。 (1行の端数である垂直方向のスペースを作成する方法がわかった場合は、echo
コマンドを変更してください。) Enter、command_flag
は設定されません。次にフラグをクリアして、次のプロンプトが正しく実行されるようにします。
シェルがcommand1
関数を実行すると、command2
関数が呼び出されることに注意してください。したがって、command1
はそれを特殊なケースにする必要があります(コマンドとしてカウントされません)。