alias
特定のプログラムを起動し、端末のタイトルをプログラム名に変更するシェルを作成したいと思います。どうすればいいですか?
私はUbuntuで端末を実行し、SSHを介してDebianサーバーに接続しています。
答え1
trap
Bashは、myの最後の行に次のコマンドを使用して、すべての.bashrc
コマンドをタイトルバーに表示します。
# trap commands and echo them to xterm titlebar. Must be last line.
trap 'echo -ne "\033]0;$BASH_COMMAND $USER@${HOSTNAME}>$(pwd)\007"' DEBUG
したがって、実行すると、コマンドの実行中にsleep 10
タイトルバーがに変わり、その後は元に戻ります。sleep 10
user@host>pwd
答え2
ほとんどの端末は、特定のエスケープシーケンスをヘッダ変更の試みとして認識するので、次のように動作します。
$ alias foo-with-title='echo -ne "\033]0;foo\007"; foo'
答え3
場合によっては、端末の上部に大きなUIがあり、別のウィンドウに入ったり出たりしたいので、ウィンドウが開いたときにウィンドウにタイトルを設定するようなものが必要です。.bashrc
エイリアスは途中でパラメータを受け入れないため、ファイルに関数を定義しました(私が正しく理解した場合)。
# Set the title for a terminal window:
# - first parameter is the title text
title() {
echo -ne "\033]0;$1\007"
}
title foo
次に、コマンドラインから実行するか、別のコマンドで呼び出すことができるを使用して実行します。これはXfce端末を使用するDebianで動作します。