Linux

linux + tput:$TERM 沒有值,也沒有指定 -T

  • June 4, 2021

我在我的 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

請建議在我的 bash 腳本中需要設置什麼(ENV 或其他)才能使用 tput 命令?

通過 連接時ssh,環境變數可能(也可能不會)傳遞給遠端應用程序。也可以完全不設置*“WIN 應用程序引擎”*TERM

如果TERMputty(或xterm,就此而言),這些具有相同的效果:

tput setaf 2
tput -T putty setaf 2

因為用於的控制序列setaf是相同的。同樣,如果TERMlinux,這些是相同的

tput setaf 2
tput -T linux setaf 2

setaf用於使用ANSI (x3.64) 轉義序列將前景(文本)設置為特定值。您使用的大多數終端都會這樣做——或者有些終端無法辨識這些轉義序列中的任何一個。由於未提及該應用程序,因此您必須進行試驗以查看*“WIN 應用程序引擎”是否辨識這些轉義序列。如果是這樣,它可能使用相同的ANSI*轉義,所以你可以這樣做

tput -T xterm setaf 2

(當然,putty、linux 和 xterm 之間還有其他區別)。

引用自:https://unix.stackexchange.com/questions/416047