tux*_*21b 20
我不知道是否可以更改shell的默认行为,但您至少可以使用io:format正确格式化输出.
这是一个例子:
1> io:format("~p~n", [[65, 66, 67]]).
"ABC"
ok
2> io:format("~w~n", [[65, 66, 67]]).
[65,66,67]
ok
Run Code Online (Sandbox Code Playgroud)
由于shell仅用于实验/维护,io:format()因此至少应该足以满足您的实际应用需求.也许您还应该考虑编写自己的格式/打印方法,例如formatPerson()或类似的东西,它可以很好地格式化所有内容.
我倾向于通过在shell中将一个原子添加到我的列表中来实现.
例如:
Eshell V5.7.4 (abort with ^G)
1> [65,66,67].
"ABC"
2> [a|[65,66,67]].
[a,65,66,67]
Run Code Online (Sandbox Code Playgroud)
当然也可以是[a,65,66,67].但是[a | fun_that_returns_a_list()]会在大部分时间打印"正确的东西(ish)"
从Erlang/OTP R16B开始,您可以使用函数shell:strings/1来打开或关闭它.请注意,它还会影响实际意味着字符串的事物的打印,例如"foo"在以下示例中:
1> {[8,9,10], "foo"}.
{"\b\t\n","foo"}
2> shell:strings(false).
true
3> {[8,9,10], "foo"}.
{[8,9,10],[102,111,111]}
Run Code Online (Sandbox Code Playgroud)