在我的脚本中,我几乎总是使用转义序列来表示颜色:
R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"
我希望将-e
设置为默认行为,这样我就可以省略它。如何做到?
myecho()
{
echo -e "$@"
}
如果你正在使用它,你可以做得更好:
green_echo()
{
echo -e "${g}$@${R}"
}
$@
中移除它,并使用switch选择正确的转义序列。没有限制,记住shell是一种完整的编程语言。#!/bin/bash
、alias foo=echo
、foo bar
的脚本,结果提示 line 3: foo: command not found
。我猜你可以使用 shell 选项 expand_aliases
,但这可能不是一个好主意…… - rodrigo#!/bin/bash --posix
来获取它。 - rodrigo
-E
覆盖默认设置。 - dmedvinskyshopt -s expand_aliases
,否则此示例无法在脚本中运行,但除此之外它是一个可工作的示例,谢谢。 - user1472229