我找到了这个例子:
echo -e "This is red->\e[00;31mRED\e[00m"
如果直接从命令行执行,则可以工作,如果创建文件,则为:
#! /usr/bin/sh
echo -e "This is red->\e[00;31mRED\e[00m"
不起作用。怎么修?或者可能以粗体输出?
请不要使用未安装的 Lua。
最佳答案
编辑 这可能是你的问题(可能):
#!/bin/bash
echo -e "This is red->\e[00;31mRED\e[00m"
原因是
sh
没有支持转义的内置 echo
命令。或者,您可以像这样调用脚本
bash ./myscript.sh
背景资料
ANSI escape sequences 由终端解释。
如果您在管道中运行/使用重定向的 IO,输出将不会到达终端,因此不会解释转义。
提示:
ansifilter
grep something --colour=always files.* | less -R
或者简单地说,就像我一样
# also prevent wrapping long lines
alias less='less -SR'
关于bash - 如何显示来自 bash 脚本的颜色信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8307470/