Difference between echo and @echo in unix shells Difference between echo and @echo in unix shells linux linux

Difference between echo and @echo in unix shells


That's a Makefile-specific thing; it has nothing to do with shell scripts.

Recipes that begin with @ do not echo the command. That is to say, with a Makefile

foo:    echo foo

You get

$ make foo        # <-- this is meant to be the command you enter in the shellecho foofoo

Whereas with a Makefile

foo:    @echo foo

it is

$ make foofoo


applemcg.$ fbdy newest trace_anyfunction newest{     trace_call $# $*;    [[ -f "$1" ]] || {         trace_call NO $1;        return 1    };    t=$1;    shift;    while [[ -n "$1" ]]; do        [[ "$t" -ot "$1" ]] && {             trace_call NEWER $1 than $t;            return 1        };        shift;    done;    trace_call NEWEST $t;    return 0}function trace_any{     printf $* 1>&2}applemcg.$ 

so, the "make paradigm" is

newest outputfile inputa inputb... || {      command input...   > outputfile}

and you cat toss your makefiles on the scrap heap of history.