Linuxコマンドを自作しながら学ぶで作成したsayコマンドに引数の機能を加えて、様々な文字列を出力できるようにします。
引数を理解するためにsayコマンド用のファイルを変更します。
/home/pi/say.go
※上記のパスはアカウント名がpiの場合になります。
package main
import (
"fmt"
"os"
)
func main() {
// 引数の数を調べる
fmt.Printf("length=%d\n", len(os.Args))
// 各引数の値を出力する
for _, v := range os.Args {
fmt.Println(v)
}
}
下記の処理でsayの実行ファイルを作成して、動作を確認してみます。
$ go build say.go $ ./say hoge huga
length=3 ./say hoge huga
のような結果になりました。
一番目の値は実行したコマンド、二番目からはsayの後にスペース区切りで追加した値が出力されました。
これを参考にして、コードを書き換えてみます。
/home/pi/say.go
package main
import (
"fmt"
"os"
)
func main() {
if len(os.Args) == 2 {
fmt.Println(os.Args[1])
} else {
fmt.Println("error")
}
}
$ go build say.go $ sudo mv say /usr/local/bin/
でsayのみで実行できるようにして、下記コマンドで動作を確認してみまる。
$ say hoga
で
hoge
と出力され、
$ say
で
error
と出力されることを確認しましょう。