Go言語でコマンドを自作してみる
#実行環境
- manjaro
- zsh
- go1.12.5
#使用するパッケージ
- os
- log
- fmt
#実際に作ってみる
##目次
- コマンド名を決めてファイルを作る
- コマンドの中身を作る
- ビルドする
- 実行ファイルがある場所にパスを通す
- 使ってみる
##コマンド名を決めてファイルを作る
$ vim <コマンド名>.go
作りたいコマンドの名前のファイルを作ります。
※拡張子に.goをつけます。
※この記事ではmake_directory.go
##コマンドの中身を作る
下のプログラムではmkdirと同じようなものを作っています
make_directory.go
package main
import (
"fmt"
"os"
"log"
)
func main() {
if len(os.Args)!=2{
fmt.Println("Please enter \"make_dirctory <dirctory name>\"")
os.Exit(0)
}
dir_name := os.Args[1]
if err := os.Mkdir(dir_name,0777); err != nil{
log.Fatal(err)
}
}
##ビルドする
書いたプログラムをビルドして、実行ファイルを作成します。
$ go build <コマンド名>.go
##実行ファイルがある場所にパスを通す
毎回実行ファイルがある場所を指定すれば、コマンドを実行できますがそれではめんどくさいので、パスを通します。
パスを通すために、.zshrcに下の文を追記します。
※bashを使っている場合は.zshrcではなく.bashrcです。
.zshrc
export PATH="$PATH:<実行ファイルのある場所>"
##使ってみる
実行します
$ <コマンド名>