我有一个包含多个echo
来电的bash脚本:
#!bin/bash
echo 'a'
echo 'b'
echo 'c'
我想在所有这些echo调用之前添加一个默认文本,以获得如下输出:
default_text: a
default_text: b
default_text: c
有没有办法在脚本内部全局执行此操作而不向每个echo调用添加默认文本?
注意:下面有两个非常好的答案。接受的那个解决了echo
命令专门解决的问题。第二个解决了输出到stdout的任何命令的脚本内全局问题。
答案 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: '"