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開発と相性抜群」


コメント