func Get(name string, defVal ...string) (val string) {
	if UpperEnvKey {
		name = strings.ToUpper(name)
	}
	if val = loadedData[name]; val != "" {
		return
	}
	if val = os.Getenv(name); val != "" {
		return
	}
	if len(defVal) > 0 {
		val = defVal[0]
	}
	return
}
Get get os ENV value by name
package dotnev
import (
	"bufio"
	"os"
	"path/filepath"
	"strconv"
	"strings"
	"github.com/abulo/ratel/v2/config/parser/ini/parser"
)
var (
	UpperEnvKey = true
	DefaultName = ".env"
	OnlyLoadExists bool
	loadedData = map[string]string{}
)
func LoadedData() map[string]string {
	return loadedData
}
func ClearLoaded() {
	for key := range loadedData {
		_ = os.Unsetenv(key)
	}
	loadedData = map[string]string{}
}
func DontUpperEnvKey() {
	UpperEnvKey = false
}
func Load(dir string, filenames ...string) (err error) {
	if len(filenames) == 0 {
		filenames = []string{DefaultName}
	}
	for _, filename := range filenames {
		file := filepath.Join(dir, filename)
		if err = loadFile(file); err != nil {
			break
		}
	}
	return
}
func LoadExists(dir string, filenames ...string) error {
	oldVal := OnlyLoadExists
	OnlyLoadExists = true
	err := Load(dir, filenames...)
	OnlyLoadExists = oldVal
	return err
}
func LoadFromMap(kv map[string]string) (err error) {
	for key, val := range kv {
		if UpperEnvKey {
			key = strings.ToUpper(key)
		}
		err = os.Setenv(key, val)
		if err != nil {
			break
		}
		loadedData[key] = val
	}
	return
}