SSH経由でBashファイルを実行する場合、用語環境変数が設定されていません


2

リモートマシンでbashスクリプトを実行しようとしています。ターミナルでssh接続を開くと、スクリプトを簡単に実行できます。しかし、私はそれをそのように実行すると:

ssh user @ ip </ etc / script

エラーが発生します:

TERM環境変数が設定されていません。

ここで何が間違っていますか?

回答:



0

入力をリダイレクトすると、sshクライアントはおそらく入力がTTYに接続されていないことを認識しているため、TERMが不適切であると判断します。


0

これらの行を~user/.bashrc宛先ホストに配置してみてください。

if [ ! ${#TERM} > 0 ]
then
    export TERM=<value>
fi

$ { #var } は、変数varの文字列の長さを返します。そのため、の長さTERMがNULL(未設定)または0の場合、手動でTERM値を設定できます。

また、かどうかのテストについて考えることができます$SSH_CLIENTまたは$SSH_CONNECTION非ゼロである、とだけこれらの条件の下でTERM値をテスト。

最後に、ログインシェルでのみ実行される.bashrcため、これを実行する必要があり.bash_loginます。


残念ながら、ホスト/ローカルマシン上のファイルを変更することはできません。それらはサーバーであるため、そのままである必要があります。両方のマシンにあるスクリプトのみを変更できます
...-Simons0n

その場合、スクリプトもbashであるため、スクリプトの行の設定を試すことができます。
-dafydd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.