如何在bash脚本中为所有echo调用添加默认值

时间:2013-07-24 10:20:55

标签: bash shell echo

我有一个包含多个echo来电的bash脚本:

 #!bin/bash
 echo 'a'
 echo 'b'
 echo 'c'

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

default_text: a
default_text: b
default_text: c

有没有办法在脚本内部全局执行此操作而不向每个echo调用添加默认文本?

注意:下面有两个非常好的答案。接受的那个解决了echo命令专门解决的问题。第二个解决了输出到stdout的任何命令的脚本内全局问题。

3 个答案:

答案 0 :(得分:9)

定义一个函数:

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

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

答案 1 :(得分:3)

这个bash技术适用于任何命令,它向stdout发送文本:

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

答案 2 :(得分:0)

试试这个:

shopt -s expand_aliases
alias echo="echo 'default_text: '"