// Expand replaces ${var} or $var in the string based on the mapping function. // For example, [os.ExpandEnv](s) is equivalent to [os.Expand](s, [os.Getenv]). func Expand(s string, mapping func(string) string) string { … } // ExpandEnv replaces ${var} or $var in the string according to the values // of the current environment variables. References to undefined // variables are replaced by the empty string. func ExpandEnv(s string) string { … } // isShellSpecialVar reports whether the character identifies a special // shell variable such as $*. func isShellSpecialVar(c uint8) bool { … } // isAlphaNum reports whether the byte is an ASCII letter, number, or underscore. func isAlphaNum(c uint8) bool { … } // getShellName returns the name that begins the string and the number of bytes // consumed to extract it. If the name is enclosed in {}, it's part of a ${} // expansion and two more bytes are needed than the length of the name. func getShellName(s string) (string, int) { … } // Getenv retrieves the value of the environment variable named by the key. // It returns the value, which will be empty if the variable is not present. // To distinguish between an empty value and an unset value, use [LookupEnv]. func Getenv(key string) string { … } // LookupEnv retrieves the value of the environment variable named // by the key. If the variable is present in the environment the // value (which may be empty) is returned and the boolean is true. // Otherwise the returned value will be empty and the boolean will // be false. func LookupEnv(key string) (string, bool) { … } // Setenv sets the value of the environment variable named by the key. // It returns an error, if any. func Setenv(key, value string) error { … } // Unsetenv unsets a single environment variable. func Unsetenv(key string) error { … } // Clearenv deletes all environment variables. func Clearenv() { … } // Environ returns a copy of strings representing the environment, // in the form "key=value". func Environ() []string { … }