linux + tput:$ TERMに値がなく、-Tが指定されていません。

linux + tput:$ TERMに値がなく、-Tが指定されていません。

bashスクリプトでtputコマンドを使用してテキストの色を指定しています。

〜のように

tput setaf 2

パテナコンソールでスクリプトを実行すると、すべてがうまく機能します。

ただし、SSHを介してスクリプトを実行するいくつかの外部WINアプリケーションエンジンを実行すると、tputで次のエラーが発生します。

tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified

tputコマンドを使用するためにbashスクリプトで設定する必要があるもの(ENVなど)を提案してください。

ベストアンサー1

接続時にssh環境変数がリモートアプリケーションに渡されたり、渡されたりしない場合があります。また「WINアプリケーションエンジン」TERM設定がまったくない可能性があります。

その場合(またはその問題TERMについて)同じ効果があります。puttyxterm

tput setaf 2
tput -T putty setaf 2

使用する制御順序がsetaf同じであるためです。繰り返しますが、これらはTERM次のlinuxとおりです。

tput setaf 2
tput -T linux setaf 2

setaf前景(テキスト)を特定の値に設定するために使用されます。米国国立標準協会(x3.64) エスケープシーケンス。あなたが使用しているほとんどの端末はこれを行います。あるいは、一部はこれらのエスケープシーケンスを認識しない。言及されたアプリケーションがないので、実験を通してこれが機能していることを確認する必要があります。「WINアプリケーションエンジン」対応するエスケープシーケンスを識別します。その場合、同じ内容を使用できます。米国国立標準協会脱出してできます。

tput -T xterm setaf 2

(もちろん、パテ、Linux、xtermの間には異なる違いもあります。)

おすすめ記事