0
#!/usr/bin/env stack
{- stack --install-ghc --resolver lts-8.8 runghc
-}
import System.IO
import System.Process
main = createProcess (proc "ls" [])
雖然stdout
被哈斯克爾視爲一個tty,如hIsTerminalDevice stdout
返回True
時保留顏色,ls
不承認它是這樣了,不輸出色彩。如何編寫到stdout
有沒有辦法規避這個問題,還是顯然不可能在Haskell中使用顏色輸出工作?
編輯:很清楚,我不想只是ls
工作,但是當他們將stdout
識別爲tty時,支持顏色輸出的所有Unix工具都可以工作。
'ls'默認不會產生顏色輸出。如果你的'ls'支持,使用'「ls」[「--color = auto」]。 – Ryan
不能那樣做。我正在實現一個shell,我不選擇用戶將鍵入的內容。但是,在'bash'中輸入'ls',你會看到默認的顏色。 –
@SebastienGuimmara嘗試輸入'which ls'。它可能是一個在bash的配置文件中設置的別名。 – sepp2k