我有一个非常基本的 shell 脚本,大致类似于:
#!/bin/bash
export MYVAR=1
java -jar myjar.jar
在我们的某些机器上,
myjar
应用程序抱怨MYVAR
未定义。
这种行为是预期的吗?有什么“好的”解决方法吗?我预计这个程序有 10-20 个导出,并且不喜欢将它们全部捆绑到一条线上。
谢谢
goose@t410:/tmp$ ./bashjava
java -jar myjar.jar was invoked
goose@t410:/tmp$ echo $MYVAR
goose@t410:/tmp$ source ./bashjava
java -jar myjar.jar was invoked
goose@t410:/tmp$ echo $MYVAR
1
goose@t410:/tmp$ unset MYVAR
goose@t410:/tmp$ echo $MYVAR
goose@t410:/tmp$ . bashjava
java -jar myjar.jar was invoked
goose@t410:/tmp$ echo $MYVAR
1
请参阅我上面的评论。 (使用 your 脚本),您需要
source
将变量导出到 shell 的脚本