Command-Line Arguments

This Go program demonstrates how to work with command-line arguments using the os.Args variable. Let's go through the code with inline comments:

package main

import (
	"fmt"
	"os"
)

func main() {
	// os.Args provides a slice of command-line arguments, including the program name.
	argsWithProg := os.Args
	// os.Args[1:] gives a slice of command-line arguments excluding the program name.
	argsWithoutProg := os.Args[1:]

	// Accessing a specific command-line argument by index.
	arg := os.Args[3]

	// Print the command-line arguments.
	fmt.Println("Args with program name:", argsWithProg)
	fmt.Println("Args without program name:", argsWithoutProg)
	fmt.Println("Third argument (index 3):", arg)
}

Explanation:

  1. os.Args:

    • os.Args is a slice of strings that represents the command-line arguments. The first element (os.Args[0]) is the program name.

  2. argsWithProg:

    • argsWithProg contains all the command-line arguments, including the program name.

  3. argsWithoutProg:

    • argsWithoutProg contains only the command-line arguments (excluding the program name).

  4. arg:

    • arg is an example of accessing a specific command-line argument by index (in this case, the third argument at index 3).

  5. Printing:

    • The program prints the command-line arguments to the console for demonstration.

When you run this program from the command line, for example:

go run main.go arg1 arg2 arg3

The output will be:

Args with program name: [./main arg1 arg2 arg3]
Args without program name: [arg1 arg2 arg3]
Third argument (index 3): arg3

Keep in mind that indexing starts at 0, so os.Args[0] is the program name.

Last updated