在我的脚本中,我几乎总是使用转义序列来表示颜色:
R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"
我想做-e
默认行为,所以我可以省略它。如何?
通常你会为此使用别名,它适用于许多 shell。但是bash
别名不会在非交互式 shell 中扩展,您希望它用于非交互式脚本。
引用man bash
:
对于几乎所有用途,别名都被 shell 函数所取代
所以你可以使用函数,但我会用不同的方式来称呼它,以避免错误或无限递归:
myecho()
{
echo -e "$@"
}
如果你在上面,你可以做得更好:
green_echo()
{
echo -e "${g}$@${R}"
}
或者更好的是,您可以将颜色作为第一个参数,将其移出$@
并使用开关选择正确的转义序列。没有限制,记住 shell 是一门完整的编程语言。