我创建了一个(以makefile为导向)的包含文件,其中包含一些定义为由其他makefile使用的变量。
# this is myinclude/makevars file
MY_FOLDER:=$(ROOT_FOLDER)/my/folder
ANOTHER_FOLDER:=$(MY_FOLDER)/another/folder
MY_LIB:=$(ANOTHER_FOLDER)/lib
如果我将其包含在其他makefile中,这个“包含文件”效果很好:
include myinclude/makevars
如果我也可以将它包含在一些shell脚本中,那就太酷了! 目前我已经创建了另一个文件(myinclude / shellvars)非常相似但面向“shell”:
# this is myinclude/shellvars file
MY_FOLDER=$ROOT_FOLDER/my/folder
ANOTHER_FOLDER=$MY_FOLDER/another/folder
MY_LIB=$ANOTHER_FOLDER/lib
显然,通过在我的(shell)脚本中包含这些东西,但是我有一个重复的文件(语义上)相同的信息!
任何想法将这两个文件“合并”成一个(myinclude / makevars和myinclude / shellvars)?任何特殊的语法? 任何帮助都很清楚!
- kasper!
答案 0 :(得分:2)
试试这个:
eval "$(cat makevars.inc | tr -d '(:)')"
echo "$MY_LIB"
这会将目标包含文件的文本加载到内存中,从中删除所有冒号和括号,然后执行结果。