通常我使用:
YELLOW=$(tput setaf 3)
在bash中实现了预期的效果,但我现在必须重写我的脚本才能在Unix平台上运行。所以我正在寻找一种解决方案,它将同时适用于sh和bash。
谢谢
答案 0 :(得分:0)
一个解决方案而非依赖tput
的解决方案是将您的脚本基于通用ANSI code sequences。您可以assign them with default values而不是生成这些序列。然而,这可能会给那些不支持这些序列的哑终端带来问题。
示例:
YELLOW="(ESC)[33m"
NORMAL="(ESC)[0m"
echo "${YELLOW}Yellow text.${NORMAL}"
(ESC)
表示文字ESCAPE字符。你应该用真实的替换它。较旧的shell不支持$'\x'
语法,但您可以直接指定ESCAPE char。