Golang: System Call

By Xah Lee. Date: .

To make a system call, use

import "os/exec"

First, build your command. e.g.

var cmd = exec.Command(cmdName, arg1, arg2)

Each arg should not contain any space.

then, you have several choices how you want to run it. The main choices are:

if you need to change dir before running the command, use

os.Chdir(path)

package main

// example of calling shell command

// cd to a given dir
// call ls -al
// print its output

import "fmt"
import "os"
import "os/exec"

func main() {

	var dirToRun = "/Users/xah/web/"
	var err = os.Chdir(dirToRun)
	if err != nil {
		panic(err)
	}

	var cmdName = "ls"

	var cmd = exec.Command(cmdName, "-a", "-l")

	output, err := cmd.Output()
	if err != nil {
		panic(err)
	}

	fmt.Printf("%v\n", string(output))

}

Reference

https://golang.org/pkg/os/exec/

If you have a question, put $5 at patreon and message me.

Golang

  1. Compile, Run
  2. Source Encoding
  3. Package, Import
  4. Comment
  5. Print
  6. String
  7. String Functions
  8. Print String
  9. String Backslash Escape
  10. Rune
  11. Variable
  12. Zero Value
  13. Constant
  14. If Then Else
  15. Switch/Case
  16. Loop
  17. Basic Types
  18. Array
  19. Slice
  20. Map
  21. Struct
  22. Function
  23. Closure
  24. Pointer
  25. String, Byte Slice, Rune Slice
  26. regexp
  27. Read File
  28. Write to File
  29. Walk Dir
  30. Check File Exist
  31. System Call
  32. Get Script Path
  33. Defer
  34. Random Number

Examples

  1. Match Any Regexp
  2. Find Replace
  3. Validate Links
  4. Generate Sitemap

Reference

  1. Go Spec