所以我想创建一个make run
命令,以便我可以在本地进行测试。它会在运行之前加载一些env。
有一个win.env
文件
set ENV1=val1
set ENV2=val2
和lin.env
文件
export ENV1=val1
export ENV2=val2
在Makefile
我有:
run:
ifeq ($(OS),Windows_NT)
. ./win.env && go run .
else
. ./lin.env && go run .
endif
在linux上可以,但是在windows上显示:
'.' is not recognized as an internal or external command,
operable probram or batch file.
make: *** [run] Error 1
如何在运行程序之前加载envars ?
.
命令是POSIX shell的一个特性。你没有在Windows上使用POSIX shell,你正在使用Windows cmd.exe。
首先,不能将文件命名为win.env
。Windows非常关心文件扩展名,所以你必须将这个文件命名为win.bat
或类似的东西。
第二,在Windows的cmd.exe中,你只需要运行脚本;它不像POSIX系统那样启动一个新的命令程序。
run:
ifeq ($(OS),Windows_NT)
win.bat; go run .
else
. ./lin.env && go run .
endif