web-dev-qa-db-ja.com

ターミナルの最初のbashプロンプトにいるときを知ることは可能ですか?

これは私の最後の質問の続きのようなものです: 最後のbash入力コマンドを保存して印刷

ここで、端末の最初のbashプロンプトがいつ表示されるかを知ることができるかどうかを知りたいと思います。したがって、現在のプロンプトの上で実行された最後のコマンドを表示しています。そして、新しい端末にいるときに、最後のN個のコマンドを表示するのはクールだと思います。

.bashrc内の最後のコマンドをエコーすることもできると思いますが、それは良い考えではないようです。また、スクロールバックがクリアされたときに表示される最後のN個のコマンドを取得するのもクールです(clearを介して)。

そのいずれかが(合理的に)可能ですか?

1
Falmarri

.bashrc内の最後のコマンドをエコーすることもできると思いますが、それは良い考えではないようです。また、スクロールバックがクリアされたときに(clearを介して)最後のN個のコマンドが表示されるのも便利です。

Bashソースを変更せずにそれを行う別の方法があるかどうかはわかりません...しかし、それを.bashrcに入れることの何が悪いように思われますか?スクリプトに出力されないように、対話性テストを追加する必要があります。

if [ ! -z "$PS1" ]; then
    echo "Hello, the last 5 commands you typed were :"
    tail -n5 ~/.bash_history
fi

基本的に同じことを行うclearのエイリアスを作成することもできます。

1
Thomas

行う :

echo $LINENO

または、プロンプトに入れます。

0
mikeserv

http://www.thegeekstuff.com/2008/09/bash-Shell-ps1-10-examples-to-make-your-linux-Prompt-like-angelina-jolie/

ページの一番下までスクロールします。 「コマンド番号」を表示する\#コードについて説明しています。これは1から始まり、ターミナルを終了するまで、入力するコマンドごとに増加します。便利だと思いました。

0
LawrenceC