我有兴趣在多个 golang 程序之间传递配置值。
我已经尝试过环境变量,但它们不能被设置它们的程序以外的程序读取。
我已经测试过,我确定环境变量正在被设置,并且可以在设置它的同一进程中读取。此外,如果我通过第一个过程调用第二个过程,它将打印它:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
os.Setenv("AVARIABLE", "12345")
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
_, _ = reader.ReadString('\n')
fmt.Println("exiting")
}
和
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Getenv("AVARIABLE"))
}
环境变量上下文对于我的目的来说太窄了。
我正在考虑这些选项:
在 at 创建一个文件/etc/profile.d/<filename>.sh
并运行source /etc/profile.d/<filename>.sh
,以便更全局地设置变量。
在任何人都可以阅读的地方创建一个文件并避免环境变量问题。
有没有更好的方法?我应该如何进行?
慕森卡
相关分类