私のgnome端末は、タイトルバーに現在のユーザーとホストを表示し、SSHを使用しているときにリモートユーザーとホストを表示したいと思います。
そのために、私は私のスクリプトの前にスクリプトを作成しまし~/bin/ssh
た。~/bin
PATH
/usr/bin
#!/bin/bash
echo -ne "\033]0;${1}\007"
/usr/bin/ssh $@
これはかなりうまく機能します(予期しないパラメータの順序については堅牢ではありません)。 SSHセッションを終了した後も、ウィンドウのタイトルはうまく復元されます。
私の問題は、私が使用しようとしている他のプログラムがこのssh
ビルドによって妨げられることですstdout
。git fetch
例えば、嘔吐\033]0;
。
ssh
私の質問は:スクリプトの名前を維持しながら、stdout
関連する場所にのみ提供するようにスクリプトをどのように改善できますか?
ウィンドウのタイトルを変更する必要があるかどうかを示す一種の変数が必要ですか?TERM
viaを実行してもまだ定義されているので、うまくgit
いかないようです。
文字列を別のストリームに送信できますか?
オプションを解析し、特定の条件では出力しないでくださいssh
。stdout
答え1
標準出力がttyに接続されているかどうかをスクリプトで確認したいと思います。
このstackoverflowの質問を参照してください。Bashでisattyをチェックしてください。
#!/bin/bash
# set the terminal title, if I'm running in a terminal
if [[ -t 1 ]]; then echo -ne "\033]0;${1}\007"; fi
/usr/bin/ssh "$@"
常に引用しなければならないことに注意してください。"$@"