0

echo複数の呼び出しを含む bash スクリプトがあります。

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

これらすべてのエコー呼び出しにデフォルトのテキストを追加して、次のような出力を取得したいと考えています。

default_text: a
default_text: b
default_text: c

エコー呼び出しのそれぞれにデフォルトのテキストを追加せずに、スクリプト内でこれをグローバルに行う方法はありますか?

注:以下に、この質問に対する非常に適切な回答が 2 つあります。受け入れられたものは、特にechoコマンドの問題を解決します。2 つ目は、stdout に出力するコマンドのスクリプト内で問題をグローバルに解決します。

4

3 に答える 3

9

関数を定義します。

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

が必要です。それ以外のbuiltin場合、関数は再帰的になります。

于 2013-07-24T10:25:54.950 に答える
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
于 2013-07-24T11:46:21.317 に答える
0

これを試して:

shopt -s expand_aliases
alias echo="echo 'default_text: '"
于 2013-07-24T10:25:42.007 に答える