加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 如何从makefile源脚本?

发布时间:2020-12-15 09:11:00 所属栏目:安全 来源:网络整理
导读:有没有更好的方法来源脚本,它设置env vars,从一个makefile? FLAG ?= 0ifeq ($(FLAG),0)export FLAG=1/bin/myshell -c 'source scripts here ; $(MAKE) $@'else...targets...endif 回答问题的问题:你不能。 基本问题是子进程不能改变父进程的环境。 shell
有没有更好的方法来源脚本,它设置env vars,从一个makefile?
FLAG ?= 0
ifeq ($(FLAG),0)
export FLAG=1
/bin/myshell -c '<source scripts here> ; $(MAKE) $@'
else
...targets...
endif
回答问题的问题:你不能。

基本问题是子进程不能改变父进程的环境。 shell通过在source’ing时不分叉一个新进程,而是在shell的当前化身中运行这些命令。这工作正常,但make不是/ bin / sh(或你的脚本的任何shell),不理解这种语言(除了他们有共同点)。

Chris Dodd和Foo Bah已经解决了一个可能的解决方法,所以我建议另一个(假设你正在运行GNU make):后处理shell脚本到make兼容文本,并包括结果:

shell-variable-setter.make: shell-varaible-setter.sh
    postprocess.py @^

# ...
else
include shell-variable-setter.make
endif

杂乱的细节留下作为一个练习。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读