shell写多⾏到⽂件中
⽤cat或者echo命令输⼊多⾏数据到指定⽂本
#!/bin/sh
(
cat <<EOF
start()
{
echo"start"
}
EOF
) > Makefile
cat Makefile
start()
{
echo "start"shell创建文件并写入内容
}
为了⾃动⽣成⼀个可以传参的Makefile写了⼀个变态的shell
#!/bin/sh
cd ${ta_path}
echo"---⽣成 Makefile-----"
echo"TA_DEV_KIT_DIR := ../../export-user_ta/
CROSS_COMPILE := arm-linux-gnueabihf-
CFG_TEE_TA_LOG_LEVEL ?= 2" > Makefile
#cd ${ta_path}
sed -i '$a\CPPFLAGS += -DCFG_TEE_TA_LOG_LEVEL=$(CFG_TEE_TA_LOG_LEVEL)' Makefile
echo"BINARY=${uuid}
TA_ROOT := ." >> Makefile
sed -i '$a\include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk \nall: $(BINARY).ta \n$(BINARY).ta: $(BINARY).bin\n    rm -f $@ \n    cat faked_armv7_uta_signed_header.bin $< > $@' Makefile echo"clean: clean_ta_file
.PHONY: clean_ta_file
clean_ta_file:" >> Makefile
sed -i '$a\    rm -f $(BINARY).ta' Makefile
echo"----Makefile⽣成完成----"
交叉使⽤sed和cat或者echo命令是因为,sed可以将$(BINARY)只要的参数原封不动的写⼊⽂件中,但是echo,cat会将其理解为变量。
本⾝这脚步的主要⽬的也是为了使Jenkins调⽤时可以⼿动传递参数。在
echo "BINARY=${uuid}
TA_ROOT := ." >> Makefile
就是这个意思。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。