Maison > développement back-end > Golang > Pourquoi My Go `exec.Command('mv', '*')` échoue-t-il avec « état de sortie 1 » ?

Pourquoi My Go `exec.Command('mv', '*')` échoue-t-il avec « état de sortie 1 » ?

DDD
Libérer: 2024-12-16 04:12:57
original
608 Les gens l'ont consulté

Why Does My Go `exec.Command(

Go : erreur « Échec de l'exécution de la commande » lors de l'utilisation du caractère générique

Lors de la tentative d'exécution d'une commande « mv » à l'aide du package exec de Go , un message d'erreur indiquant « état de sortie 1 » peut s'afficher. Ce problème survient lors de l'utilisation de caractères génériques, tels que "*", dans la commande.

Le problème réside dans la façon dont le shell interprète la commande. Lorsqu'un caractère générique est saisi dans le shell, il est développé en une liste de noms de fichiers correspondants. Cependant, lors de l'utilisation du package exec, le caractère générique n'est pas développé et la commande est exécutée avec le caractère générique lui-même comme argument.

Pour résoudre ce problème, deux approches peuvent être adoptées :

  1. Utiliser filepath.Glob : Développez manuellement le caractère générique dans une liste de noms de fichiers à l'aide de la fonction filepath.Glob et transmettez la tranche résultante comme arguments au exec package.
  2. Invoquez le Shell : Utilisez les capacités d'expansion des caractères génériques du shell en l'invoquant à l'aide de exec.Command avec "/bin/sh" comme binaire et "-c" comme argument . Le shell développera ensuite le caractère générique avant de transmettre la commande à l'exécutable "mv".

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal