別のタブで開いているSSH接続を追跡するには、次の〜/ .bashrcスクリプトを使用します。
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$@\a\]"
PS1=${ORIG}${TITLE}
}
set-title <SERVERNAME>;
echo "set-title <SERVERNAME>"
私は私のタブに対してこれを行います。 SSHがオンになっていない(使用set-title LOCAL;
)、2つの異なるサーバーにあります。あるサーバーでは、まさに私が望むことを行い、タブ名を変更しますが、他のサーバーでは変更しません。
set-title <SERVERNAME>;
コマンドラインに直接入力するとタブ名が変更され、ログイン時にエコーが発生します"set-title <SERVERNAME>"
。そして、source ~/.bashrc
これは期待どおりに機能するため、サーバーにログインしている場合にのみ機能しません。
ログインが実行されているサーバーScientific Linux release 6.7 (Carbon)
とそうでないサーバーで実行されますCentOS release 6.6 (Final)
。set-title <SERVERNAME>;
ログイン時に.bashrcスクリプトが正しく実行されないのはなぜですか?
ベストアンサー1
この質問は、追加情報がないと回答できません。
ただし、最も可能性の高いシナリオは、.bashrc
ログインを介してソースが提供されるか、.bash_profile
おそらく.profile
次のようなものです。
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
ヘッダーが設定されていないシステムでは、PS
ログインスクリプトの後の段階で変数が異なる値に設定されます。
この変数は、実際にはログイン時にのみ実行されるBash構成ファイル(または構成)に設定する必要があり、PS1
すべてのサブシェルがその値を継承するように変数を環境変数として編集する必要があります。.bash_profile
.profile
exported
PS1=${ORIG}${TITLE}
export PS1
または、Bashシェルの略語を使用してください。
export PS1=${ORIG}${TITLE}