作为练习,我制作了一个shell脚本,在屏幕上输出彩色信息。我试图使用ANSI颜色代码,但内容本身会输出。
我的代码:
#!/bin/bash
echo "\033[1;37;42m SUCCESS! \033[0m"
输出:
\033[1;37;42m SUCCESS! \033[0m
但是,使用'print'确实有效:
#!/bin/bash
print "\033[1;37;42m SUCCESS! \033[0m \n"
输出(白色字体+绿色背景):
SUCCESS!
我在Red Hat Enterprise Linux Server 6.5版(Santiago)和Raspbian Jessie Lite 4.4上进行了测试,结果相同。据我所知,从我所经历的所有搜索引擎结果来看,'echo'和'print'是相同的,除了'echo'包括换行符而'print'没有。为什么在这种情况下它会有所不同?
答案 0 :(得分:2)
默认情况下,echo会将其解释为字符串。你必须告诉echo适当地解释反斜杠。
来自文档:
-e启用反斜杠转义的解释
echo -e "\033[1;37;42m SUCCESS! \033[0m"