2011-06-27 11 views
1

私はラップトップでTERM='xterm-256color'を使用していますが、xterm-256colorが利用できないリモートサーバでTERM='xterm'を使用する必要があり、いくつかの問題が発生します。ssh'ingの前にTERMをエクスポートする

これまでのところ、私はexport TERM='xterm'; ssh -X 123.45.678.90を行うことができます。これはうまくいきます。しかし、前の行を(zsh)エイリアス(alias sshx="export TERM='xterm'; ssh -X 123.45.678.90")に入れることは機能していないようです。たとえば、exportsshの間にecho $TERMを挿入すると、コマンドラインですべてを実行するとxtermが返されますが、エイリアスはxterm-256colorとなります。

もちろん、TERMは、sshの後にその初期値に戻されることが最適です。

これを達成する方法はありますか?

ありがとうございました。

+1

'.678.'は間違いなく有効なIPアドレスの部分です。 – ZyX

+0

これは古いzshバグかもしれません: 'alias abc = 'export ABC =" $(date) "; zsh -c "echo¥$ ABC" "私はこの動作を観察しません。 Zshのバージョンは4.3.11です。 – ZyX

答えて

3

これは通常、何もエクスポートせず

alias sshx='TERM=xterm ssh -X 123.45.67.89' 

によって解決されます。それ以外の場合は、おそらく関数を作成する必要があります。

+0

エクスポートする必要があるときはどうすればわかりますか? – antony

+0

@antony明らかに、一連のコマンドを実行するときだけエクスポートする必要があります。現在の関数がアクティブなときだけエクスポートするには、 'local -x'を使うことができます。したがって、変数が変更されたスコープを制限することができます:' export ABC = "ghi"; (){ローカル-x ABC = "def"; zsh -c 'echo $ ABC'}; zsh -c 'echo $ ABC''(これは匿名関数を使用し、誤解していない場合は少なくともzsh-4.3.11が必要です)。 – ZyX

+0

'alias sshx = '(){local -x TERM = xterm;のようなことをするパッチもあります。 ssh -X 123.45.67.89 $ @} '':匿名関数に引数を渡すことができます(ただし、この場合は通常の関数を作成することをお勧めします)。 – ZyX

関連する問題