Maison > développement back-end > Golang > Comment exécuter plusieurs commandes « exec » de manière séquentielle dans le même shell à l'aide de Go ?

Comment exécuter plusieurs commandes « exec » de manière séquentielle dans le même shell à l'aide de Go ?

Susan Sarandon
Libérer: 2024-11-26 17:43:11
original
952 Les gens l'ont consulté

How to Run Multiple `exec` Commands Sequentially in the Same Shell Using Go?

Exécuter plusieurs commandes d'exécution dans le même shell à l'aide de Go

Dans le package os/exec de Go, l'exécution simultanée de plusieurs commandes présente un défi . Cet article traite d'un cas spécifique où l'exécution de commandes séquentiellement et dans le même shell est souhaitée.

Description du problème

Le code fourni tente d'exécuter trois commandes successivement :

cd path; ./configure; make
Copier après la connexion

Cependant, la deuxième commande, ./configure, échoue avec une erreur « aucun fichier ou répertoire de ce type » car le répertoire de travail n'est pas défini.

Solution utilisant un shell

Pour exécuter des commandes dans une seule instance de shell, l'approche suivante peut être utilisée :

cmd := exec.Command("/bin/sh", "-c", "cd path; ./configure; make")
err := cmd.Run()
Copier après la connexion

Cette commande appelle le shell (/bin/sh) avec l'option -c, qui exécute les commandes fournies séquentiellement dans le shell. Cela permet à cd de modifier le répertoire de travail pour les commandes suivantes.

Solution utilisant le répertoire de travail

Alternativement, si seul un répertoire spécifique doit être défini pour les commandes, le Le répertoire de travail peut être défini manuellement :

config := exec.Command("./configure", "--disable-yasm")
config.Dir = folderPath
build := exec.Command("make")
build.Dir = folderPath
Copier après la connexion

En définissant le champ Dir de la commande, le répertoire de travail est modifié avant l'exécution de la commande, garantissant ainsi que les commandes s'exécutent dans le bon répertoire.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal