Une tentative de définition d'une variable d'environnement à l'aide du package "os" dans un programme Go persiste dans le programme, mais pas en session terminale.
Quand un nouveau Lorsqu'un processus est créé dans un système, il hérite d'une copie des variables d'environnement de son processus parent. Cependant, les modifications apportées à ces variables au sein du processus enfant ne se propagent pas au processus parent.
Pour garantir que la variable d'environnement persiste au-delà de l'exécution actuelle du programme, le programme peut lancer un nouveau shell (ou session de terminal) avec les variables d'environnement modifiées. Ceci peut être réalisé en utilisant la fonction os.StartProcess avec les arguments de ligne de commande appropriés.
L'extrait de code suivant montre comment définir une variable d'environnement à l'aide du package "os" et lancer un nouveau shell avec l'environnement modifié :
package main import ( "fmt" "os" "os/exec" ) func main() { // Set the environment variable _ = os.Setenv("FOO", "BAR") // Build the command to launch a new shell cmd := exec.Command("sh", "-c", "env") cmd.Env = os.Environ() // Launch the shell with the modified environment err := cmd.Run() if err != nil { fmt.Println("Failed to launch shell:", err) return } // Print the environment variable value within the new shell stdout, err := cmd.Output() if err != nil { fmt.Println("Failed to get shell output:", err) return } fmt.Println(string(stdout)) }
L'exécution du programme ci-dessus créera une nouvelle session shell avec la variable d'environnement mise à jour et imprimera son valeur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!