【初心者向け】Go CLIツールの作り方|コマンドライン開発入門

プログラム

Go は、高速で軽量なCLIツール開発に最適な言語です。
単一バイナリで動作し、クロスコンパイルも簡単なため、実務でも多く採用されています。

本記事では、GoでCLIツールを作成する方法を「基本・引数処理・実務で使える設計」まで初心者向けに解説します。


CLIツールとは?

CLI(Command Line Interface)とは👇

👉 コマンドラインで動作するツール


CLIツールの用途

例えば👇

  • ファイル操作
  • 自動化スクリプト
  • バッチ処理
  • API操作
  • 開発支援ツール

👉 実務で超重要


基本のCLIプログラム

package main

import "fmt"

func main() {
fmt.Println("Hello CLI")
}

実行方法

go run main.go

ビルド方法

go build

👉 実行ファイル生成


引数を取得する

package main

import (
"fmt"
"os"
)

func main() {

args := os.Args

fmt.Println(args)
}

フラグを使う

package main

import (
"flag"
"fmt"
)

func main() {

name := flag.String(
"name",
"guest",
"ユーザー名",
)

flag.Parse()

fmt.Println(*name)
}

実行例

go run main.go --name tomoya

Cobraで本格CLI開発

Cobra

go get github.com/spf13/cobra

Cobraコマンド例

var rootCmd = &cobra.Command{
Use: "app",
Short: "CLI Tool",
}

実務で重要なポイント

✔ 設定ファイル管理

.env
config.yaml

✔ ログ出力

log.Println("実行開始")

✔ エラーハンドリング

if err != nil {
log.Fatal(err)
}

実務での応用

  • デプロイツール
  • CSV変換
  • APIバッチ
  • 管理CLI


よくある失敗

❌ 引数未チェック
❌ log不足
❌ 設定ファイル直書き


ベストプラクティス

  • Cobra利用
  • Flag整理
  • Config分離
  • Error設計

💡 結論

👉
「GoはCLI開発と相性抜群」

コメント

タイトルとURLをコピーしました