Golang Запуск скрипта с консоли с параметром

Есть проект на го. Скомпилил бинарник и мне надо его запустить через командную строку с параметром, чтобы узнать версию, например вот так script_name -version после чего он напишет версию программы в консоль и закроется. Как это реализовать?


Ответы (1 шт):

Автор решения: Uranus

Для обработки аргументов командной строки воспользуйтесь пакетом Flag.

  1. Создаем константу version, в которой храним номер версии программы.
  2. Создаем флаг -version с помощью flag.Bool, который принимает false по умолчанию.
  3. Используем flag.Parse() для разбора аргументов командной строки.
  4. Если флаг -version был установлен, выводим номер версии программы и вызываем os.Exit(0) для завершения программы.
  5. Если флаг не был установлен, выполняется основная логика программы.
package main

import (
    "flag"
    "fmt"
    "os"
)

// Версия программы
const version = "1.0.0"

func main() {
    // Создаем флаг для параметра -version
    versionFlag := flag.Bool("version", false, "Отобразить версию программы")

    // Парсим аргументы командной строки
    flag.Parse()

    // Если установлен флаг -version, выводим версию и завершаем программу
    if *versionFlag {
        fmt.Println("Версия программы:", version)
        os.Exit(0)
    }

    // Основная логика программы
    fmt.Println("Запуск основной логики программы...")
    // Здесь можете разместить основной код программы
}

После компиляции программы можете запустить её с флагом -version:

./script_name -version

Вывод будет таким:

Версия программы: 1.0.0

Если флаг -version не указан, программа продолжит выполнение основной логики.

→ Ссылка