我有一个bash脚本,它遍历不同的子项目目录并在那里执行 make 目标。
每个makefile都可以有自己的变量,例如:分配了makefile的$(MY_FILTERS)。所以它是一个makefile的内部变量。
有没有办法可以导出这样的变量来将它的内容添加到可从主脚本访问的某个系统/ shell变量中?
我希望这不是父进程无法通过子进程修改的情况吗?
答案 0 :(得分:3)
我希望父进程不能被子进程修改?
希望破灭,对不起,你必须使用某种IPC。这是一种方法:
#!/bin/bash
export pipe="/tmp/mypipe.$$"
trap 'rm "$pipe"' EXIT
mkfifo "$pipe"
make &
read myfilters < "$pipe"
echo "myfilters is $myfilters"
生成文件:
all:
echo ${MY_FILTERS} > ${pipe}
(请注意,echo
使用标签缩进)