您的位置:首页 > 运维架构 > Shell

shell写多行到文件中

2016-06-15 14:38 344 查看
用cat或者echo命令输入多行数据到指定文本

#!/bin/sh
(
cat<<EOF
start()
{
echo"start"
}
EOF
)>Makefile


catMakefile

start()
{
echo"start"
}

为了自动生成一个可以传参的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\nrm-f$@\ncatfaked_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

就是这个意思。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: