I denne guiden vil vi utforske hvordan vi kan bruke EXEC -pakken til å kjøre eksterne kommandoer.
Importere Exec -pakken
For å bruke EXEC -pakken, må vi importere den. Vi kan gjøre dette ved hjelp av en enkel importkommando som:
Importer "OS/EXEC"Når du er importert, kan du utføre kommandoer, som vi vil se i denne artikkelen.
Golang utfører kommandoer
La oss starte med en grunnleggende kommandoanrop for å illustrere hvordan du bruker EXEC -pakken. Et eksempelkode er som vist nedenfor:
pakkehovedI eksemplet over bruker vi Exec -kommandoen for å få listen over filer og kataloger ved hjelp av DIR -kommandoen.
Vi starter med å definere kommandoen for å kjøre ved hjelp av kommandometoden. Syntaksen er som vist:
func -kommando (navnestreng, arg ... streng) *cmdFunksjonen tar kommandoene for å kjøre som et strengargument. Den returnerer deretter en kommandostruktur for å utføre kommandoen med de medfølgende argumentene.
Neste trinn er å kjøre kommandoen ved hjelp av CombinedOutput -metoden. Metodens syntaks er som vist:
func (c *cmd) combinedOutput () ([] byte, feil)Metoden kjører kommandoen og returnerer den kombinerte stdout og stderr. Dette returnerer en byte -skive, som vi konverterer til en streng ved hjelp av strengmetoden.
Når du har kjørt koden over, bør den returnere filene og katalogene i den gjeldende arbeidskatalogen.
Sett gjeldende arbeidskatalog
Vi kan definere den gjeldende arbeidskatalogen som vi skal utføre kommandoen ved hjelp av CMD.DIR -variabel. Et eksempel er som vist:
pakkehovedFange stdout & stderr separat.
I stedet for å kombinere stdout og stderr, kan du fange dem separat som vist i koden nedenfor:
CMD: = exec.Kommando ("Dir")Spesifiser OS
Du kan også definere tilpassede kommandoer for et annet operativsystem ved hjelp av runtime.Goos -metode. For eksempel:
Ifruntime.Goos == "windows"Rørkommandoer
Du kan også røre utgangen fra en tidligere kommando som vist i eksemplet over:
pakkehovedKommandoen ovenfor skal returnere antall tegn fra Echo -kommandoen.
Lukking
Denne korte guiden illustrerer hvordan du kommer i gang med Exec -pakken i Golang.