shell寫多行到文件中


 

用cat或者echo命令輸入多行數據到指定文本

 

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

cat Makefile

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\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

就是這個意思。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM