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. Print String
  8. String Backslash Escape
  9. Rune
  10. Variable
  11. Zero Value
  12. Constant
  13. If Then Else
  14. Switch/Case
  15. Loop
  16. Basic Types
  17. Array
  18. Slice
  19. Map
  20. Struct
  21. Function
  22. Pointer
  23. String, Byte Slice, Rune Slice
  24. regexp
  25. Read File
  26. Write to File
  27. Walk Dir
  28. Check File Exist
  29. System Call
  30. Get Script Path
  31. Defer
  32. Random Number

Examples

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

Reference

  1. Go Spec