web-dev-qa-db-ja.com

bashのコマンドの後に垂直スペースを追加する

Bashの各コマンドの後に垂直スペースを追加するにはどうすればよいですか?

垂直方向のスペースを少し探して、notフルライン。線の高さの1/4または1/3で十分です。

[編集]追加するスペースは、コマンドと出力のバンドルの後にのみあります。コマンドと関連する出力の間の行は、引き続きデフォルトの間隔を使用します。例:do ls、出力は通常の行間隔を使用して表示されます。出力の後でのみ、間隔を広げて、コマンドと出力のペアを次のコマンドと出力から明確に分離します。

6
Daniel

これは、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)が、何もないよりはましかもしれません。

5
sromero

私はこれらの線に沿って何かをサポートするターミナルエミュレーターを知りません。ターミナル(またはグラフィカルターミナルエミュレーター)の非常に基本的な概念は、テキストグリッドを操作することです。画面は同じサイズのセルのマトリックスに分割され、各セルには文字が含まれています。単純なテキストフローを印刷できますが、グリッド内でカーソルを任意に配置して、任意のセルの内容を上書きすることもできます。

特定の例外があります。 CJKレターは2つの隣接するセルを占有し、xtermは通常のレターを2倍の幅や2倍の高さで印刷することもサポートします(端末テスト以外で使用されているのを見たことがありません)が、それでも基本グリッドに揃えられます。

あなたが求めているのは、コンセプト全体を最初から再設計する必要があるでしょう。現在存在しない何らかの手段で任意の配置を許可し、以前に印刷された文字と部分的に重なる場所に文字が印刷された場合にどうなるかを理解します。

これにより、ターミナルエミュレータが提供するシステムよりもはるかに複雑なシステムになり、わずかなメリットが得られます。

コマンドの出力の終わりを目立たせるために私があなたに勧めることができるのは、これらの線に沿って、おそらく太字または斜体のフォントなど、特別な色のプロンプトを表示することです。

3
egmont

以下をファイルに入れます。

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

command1command2、および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コマンドを変更してください。) Entercommand_flagは設定されません。次にフラグをクリアして、次のプロンプトが正しく実行されるようにします。

シェルがcommand1関数を実行すると、command2関数が呼び出されることに注意してください。したがって、command1はそれを特殊なケースにする必要があります(コマンドとしてカウントされません)。

1
Scott