unix echo默认参数

时间:2013-07-05 06:50:52

标签: unix echo

在我的脚本中,我几乎总是使用转义序列来表示颜色:

R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"

我想-e默认行为,所以我可以省略它。怎么样?

2 个答案:

答案 0 :(得分:5)

您可以设置alias

alias echo='echo -e'

启用它后,您可以省略-e

echo "${g}green text${R}"

答案 1 :(得分:1)

通常你会使用别名,它适用于许多shell。但是bash别名不会在非交互式shell中展开,并且您希望它用于非交互式的脚本。

引用man bash

  

对于几乎所有目的,别名都被shell函数取代

所以你可以使用函数,但我会用不同的方式来调用它,以避免错误或无限递归:

myecho()
{
    echo -e "$@"
}

如果你在上面,你可以做得更好:

green_echo()
{
    echo -e "${g}$@${R}"
}

甚至更好,您可以将颜色作为第一个参数,将其移出$@并使用开关选择正确的转义序列。没有限制,请记住shell是一种完整的编程语言。