リモートマシンでbashスクリプトを実行しようとしています。ターミナルでssh接続を開くと、スクリプトを簡単に実行できます。しかし、私がそれをそのように実行すると:
ssh user @ ip </ etc/script
エラーが発生します:
TERM環境変数が設定されていません。
私はここで何が間違っているのですか?
Sshの-t
オプションを使用すると、ttyが接続され、適切なTERM環境変数が設定されるため、問題が解決する可能性があります。
ssh -t Host < script
入力をリダイレクトすると、sshクライアントはおそらく入力がTTYに接続されていないことを認識し、TERMが不適切であると判断します。
これらの行を宛先ホストの~user/.bashrc
に配置してみてください。
if [ ! ${#TERM} > 0 ]
then
export TERM=<value>
fi
$ {#var} 変数var の文字列の長さを返します。したがって、TERM
の長さがNULL(未設定)または0の場合、TERM
値を手動で設定できます。
$SSH_CLIENT
または$SSH_CONNECTION
がゼロ以外であるかどうかをテストし、それらの条件下でのみTERM値をテストすることも考えられます。
最後に、これは.bashrc
に入れる必要があります。これは、.bash_login
がログインシェルでのみ実行されるためです。