可能重複:
Piping data to Linux program which expects a TTY (terminal)shell如何檢測,如果終端支持顏色
我想要顯示從腳本,非交互式的顏色,我需要告訴shell,其實我腳本是支持顏色的終端,所以像ls --color=auto
這樣的命令將顯示顏色(ls有選項--color=always
,但我想支持所有支持顏色的可能命令)。
我通過python Popen調用我的shell。我嘗試設置TERM環境變量,但它不起作用。
subprocess.Popen(['/bin/bash', '-c', command],
env={'TERM':'xterm-color'},
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
有沒有辦法告訴bash我是一個終端?