回答:curl --http0.9 example.com/test.txt

回答:curl --http0.9 example.com/test.txt

我目前正在尝试curl一些原始文本,并在终端中以解释的 ANSI 颜色显示它。

目前,当我运行curl http://example.com/test.txt(不是实际的 URL)时,它只是返回:

\033[0;31mTEST\033[0m

这不是我要找的;我期望返回的是我运行时看到的内容echo -e "\033[0;31mTEST\033[0m",它返回TEST,颜色为红色。

我的问题是:是否有一种方法可以curl解释 ANSI 颜色代码,以便让颜色在终端中正确显示,正如您在使用时所期望的那样echo -e

答案1

不确定这是否是最好的方法,但使用命令替换似乎工作正常(即使它有点笨重):

echo -e "$(curl -s http://example.com/test.txt)"

希望这对未来的人们有帮助。请注意curl -sL,如果您正在处理缩短的 URL,则可以使用。

答案2

回答:curl --http0.9 example.com/test.txt

从curl 7.66.0开始,默认拒绝原始文本。添加--http0.9解决问题。这是一个使用 netcat 来伪造网络服务器的示例:

echo $'\e[0;31mTEST\e[0m' | nc -l -p 8080 -q0 &

curl --http0.9 localhost:8080

另一个答案:nc example.com 80

Netcat 还可以从网络服务器获取文本。然而,它不支持 HTTP,所以有点棘手:

printf "GET / HTTP/1.0\nHost: example.com\n\n" | nc -C example.com 80

相关内容