0 linux bash shell redhat raspbian
作为练习,我制作了一个 shell 脚本,在屏幕上输出彩色消息。我试图使用 ANSI 颜色代码,但内容本身会输出。
我的代码:
#!/bin/bash
echo "\033[1;37;42m SUCCESS! \033[0m"
Run Code Online (Sandbox Code Playgroud)
输出:
\033[1;37;42m SUCCESS! \033[0m
Run Code Online (Sandbox Code Playgroud)
但是,使用“打印”确实有效:
#!/bin/bash
print "\033[1;37;42m SUCCESS! \033[0m \n"
Run Code Online (Sandbox Code Playgroud)
输出(白色字体+绿色背景):
SUCCESS!
Run Code Online (Sandbox Code Playgroud)
我在 Red Hat Enterprise Linux Server 版本 6.5 (Santiago) 和 Raspbian Jessie Lite 4.4 上对此进行了测试,并得到了相同的结果。据我所知以及我浏览过的所有搜索引擎结果,“echo”和“print”是相同的,除了“echo”包含换行符而“print”不包含换行符。为什么在这种情况下会有所不同?
默认情况下,echo 会将其解释为字符串。您必须告诉 echo 适当地解释反斜杠。
从文档中:
-e 启用反斜杠转义的解释
echo -e "\033[1;37;42m SUCCESS! \033[0m"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |