【发布时间】:2020-07-08 17:37:25
【问题描述】:
在我的 makefile 中,我想通过 .PHONY 语句调用一个 shell 脚本。在我的 shell 脚本中,我正在导出一个变量并期望它在当前的 shell 实例中被导出。使目标运行正常,但变量未反映在当前 shell 中。
生成文件
$ cat Makefile
.PHONY: configure-mytest-path
configure-mytest-path:
. ./scripts/test.sh
我通过 make 目标使用的 Shell 脚本
$ cat scripts/test.sh
#!/bin/bash
set -x
export MYTESTPATH=/Users/myname/go/mytestpath
检查变量值
$ echo $MYTESTPATH
运行目标
$ make configure-mytest-path
. ./scripts/test.sh
++ export MYTESTPATH=/Users/myname/go/mytestpath
++ MYTESTPATH=/Users/myname/go/mytestpath
检查变量值。
$ echo $MYTESTPATH
我期待 echo $MYTESTPATH 应该打印 /Users/myname/go/mytestpath 但它打印空白。我错过了什么吗?或者这不是将变量导出到当前 shell 实例的方式?
感谢理解
【问题讨论】: