如何为bash脚本中的所有echo调用预先设置默认值

如何为bash脚本中的所有echo调用预先设置默认值,bash,shell,echo,Bash,Shell,Echo,我有一个包含多个echo调用的bash脚本: 我想为所有这些echo调用预先添加一个默认文本,以获得如下输出: default_text: a default_text: b default_text: c 是否有一种方法可以在脚本中全局执行此操作,而无需向每个echo调用添加默认文本 注意:下面是这个问题的两个非常好的答案。接受的解决方案专门用于echo命令。第二种方法在脚本中全局解决了输出到stdout的任何命令的问题。尝试以下方法: shopt -s expand_aliases ali

我有一个包含多个echo调用的bash脚本:

我想为所有这些echo调用预先添加一个默认文本,以获得如下输出:

default_text: a
default_text: b
default_text: c
是否有一种方法可以在脚本中全局执行此操作,而无需向每个echo调用添加默认文本

注意:下面是这个问题的两个非常好的答案。接受的解决方案专门用于echo命令。第二种方法在脚本中全局解决了输出到stdout的任何命令的问题。

尝试以下方法:

shopt -s expand_aliases
alias echo="echo 'default_text: '"
定义一个函数:

function echo {
    builtin echo 'default_text: ' "$@" ;
}

需要内置,否则函数将是递归的。

此bash技术适用于向stdout发送文本的任何命令:

exec 1> >(sed 's/^/default text: /')

默认情况下,别名不会在非交互Shell中展开。
exec 1> >(sed 's/^/default text: /')
$ echo foo
default text: foo
$ date
default text: Wed Jul 24 07:43:38 EDT 2013
$ ls
default text: file1
default text: file2