关于sed命令
$(obj)include/autoconf.mk: $(obj)include/config.h@$(XECHO) Generating $@ ; \
set -e ; \
: Extract the config macros ; \
$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
mv $@.tmp $@
能解明那个标红的sed命令的意义吗?
好像sed -f A B 将A文件描述需要替换的地方 , B文件为所需要进行替换操作的文件
但是这样子,整个语句是什么意思呢?
弄错了,标红的应该是:
sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
mv $@.tmp $@ 回复 2# scutwyz
直说这个语句你什么地方不理解吧 sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
-n是默认不输出, 除非指定p.
-f是加载sed命令文件, 也就是sed的规则是写在文件里的.
$@是所有的命令行参数, 比如调用脚本是:./some_script some_args1 some_args2 , 那么$@就是some_args1 some_args2, 之后连接上.tmp.
&&是并且的意思.
sed -n -f tools/scripts/define2mk.sed > $@.tmp 如果执行成功, 那么mv $@.tmp $@, 也就是把临时文件重命名为正式文件.
页:
[1]