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