unix shell 中 echo 和 @echo 的区别
Difference between echo and @echo in unix shells
"echo" 和 unix 世界中的“@echo”有什么区别?
我什至不会 google 特殊字符。
例如,
已使用 here
那是 Makefile-specific thing;它与 shell 脚本无关。
以 @
开头的食谱不会回显命令。也就是说,用一个Makefile
foo:
echo foo
你得到
$ make foo # <-- this is meant to be the command you enter in the shell
echo foo
foo
而使用 Makefile
foo:
@echo foo
是
$ make foo
foo
applemcg.$ fbdy newest trace_any
function newest
{
trace_call $# $*;
[[ -f "" ]] || {
trace_call NO ;
return 1
};
t=;
shift;
while [[ -n "" ]]; do
[[ "$t" -ot "" ]] && {
trace_call NEWER than $t;
return 1
};
shift;
done;
trace_call NEWEST $t;
return 0
}
function trace_any
{
printf $* 1>&2
}
applemcg.$
所以,"make paradigm" 是
newest outputfile inputa inputb... || {
command input... > outputfile
}
然后你就把你的 makefile 扔进了历史的废料堆。
"echo" 和 unix 世界中的“@echo”有什么区别?
我什至不会 google 特殊字符。
例如, 已使用 here
那是 Makefile-specific thing;它与 shell 脚本无关。
以 @
开头的食谱不会回显命令。也就是说,用一个Makefile
foo:
echo foo
你得到
$ make foo # <-- this is meant to be the command you enter in the shell
echo foo
foo
而使用 Makefile
foo:
@echo foo
是
$ make foo
foo
applemcg.$ fbdy newest trace_any
function newest
{
trace_call $# $*;
[[ -f "" ]] || {
trace_call NO ;
return 1
};
t=;
shift;
while [[ -n "" ]]; do
[[ "$t" -ot "" ]] && {
trace_call NEWER than $t;
return 1
};
shift;
done;
trace_call NEWEST $t;
return 0
}
function trace_any
{
printf $* 1>&2
}
applemcg.$
所以,"make paradigm" 是
newest outputfile inputa inputb... || {
command input... > outputfile
}
然后你就把你的 makefile 扔进了历史的废料堆。