我有一个示例模块
-module(helloworld). -compile(export_all). main() -> io:format("~s~s~s~n",["\e[31m","Hello world!","\e[0m"]).
当我建立时:
erlc helloworld.erl
之后,我跑:
erl -noshell -s helloworld main -s init stop Hello world! (with red color)
erl -noshell -s helloworld main -s init stop > text.txt ^[[31mHello world!^[[0m (The content in text.txt is ugly, so I don't like).
我的问题是:
感谢。
答案 0 :(得分:0)
看看http://www.erlang.org/doc/man/init.html#get_arguments-0,你可以检查是否存在“noshell”标志,并相应地采用输出。
[{root,["/opt/local/lib/erlang"]},{progname,["erl"]},{home,["/Users/..."]},{noshell,[]}]]},{helloworld,main,0},{init,start_it,1},{init,start_em,1}]
答案 1 :(得分:0)
我正在使用io:rows/0
如果是终端则返回{ok, Number}
,如果不是,则返回{error, enotsup}
。更多信息here。
答案 2 :(得分:-2)
谢谢,但我不认为这可以解决我的问题。 我在C库中使用isatty并解决了它。