Skip to content

Basic CLI with os.Args and flag

Go provides two simple ways to read command‑line input:

  • os.Args – a slice of strings containing program name and arguments.
  • flag package – parses Unix‑style flags (-name value or --name value).

os.Args is good for positional arguments. flag is better for optional named flags.

Use os.Args to print all arguments.

package main
import (
"fmt"
"os"
)
func main() {
if len(os.Args) < 2 {
fmt.Println("Usage: ./program <name>")
return
}
name := os.Args[1]
fmt.Printf("Hello, %s!\n", name)
}
Terminal window
Hello, Alice!