SSH で接続する必要がある多くのサーバーに簡単に接続できるようにするために使用するスクリプトがあります。ターミナルのタイトル (私の場合は Konsole タブのタイトル) がスクリプトの名前 "() ./scripts/ssh" に設定されていることを除いて、うまく機能しています。スクリプトを更新しqdbus
、Konsole タブのタイトルを設定するための呼び出しを追加しました。動作しますが、SSH セッションが閉じられた後/スクリプトが完了した後にのみです。
qdbus
コマンドをすぐに有効にするにはどうすればよいですか?
スクリプト
#!/bin/bash
ENV=$1
HOST=$2
USER=${3:-my_username}
if [ -z ${ENV} ]; then
echo "First parameter must be the environment."
exit -1
fi
if [ -z ${HOST} ]; then
echo "Second parameter must be the host."
exit -1
fi
case "$ENV" in
# cases to determine proper hostname from abbreviated input
*)
echo "Unsupported environment: ${ENV}"
exit -1
esac
HOST="${HOST}.${ENV}.net"
# set tab title
qdbus >/dev/null "${KONSOLE_DBUS_SERVICE}" ${KONSOLE_DBUS_SESSION} setTabTitleFormat 0 "${USER}@${HOST}"
echo "Connecting to ${HOST} as ${USER} ..."
ssh ${USER}@${HOST}
# revert tab title -- COMMENTED OUT FOR TESTING
# qdbus >/dev/null "${KONSOLE_DBUS_SERVICE}" ${KONSOLE_DBUS_SESSION} setTabTitleFormat 0 "%w"
スクリプトを実行すると...
- タブのテキストは次のように更新されます
() ./scripts/ssh
- 「接続中」のエコーが表示される
- いつものようにSSHで接続しています
- タブのテキストは更新されません
SSH セッションを終了すると、タブ テキストは"${USER}@${HOST}"
上記のコマンドのように設定されます (前ssh
)。
タブのテキストをスクリプトを実行する前の状態に戻す行を追加/コメントアウトしました(と思います)。