技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

ターミナルからtemplateに出力する内容を指定する【Go】

index.htmlを作成し、ターミナルでの実行時に、
出力される変数に代入する内容を指定します。

name := os.Args[1]    // ターミナルで実行した時の第2引数を代入
fmt.Println(os.Args[0])    // 実行対象のファイル(第1引数)
fmt.Println(os.Args[1])    // 実行時の第2引数

str := fmt.Sprint(`    // 文字列として代入
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>` + name + `</h1>    // 出力変数
</body>
</html>
`)
nf, err := os.Create("index.html")    // index.htmlを同階層に作成
if err != nil {
    log.Fatal("error creating file, err")
}
defer nf.Close()   // 必ず最後に閉じる
io.Copy(nf, strings.NewReader(str))   // 作成したファイルに、strをコピー


コマンドを実行します。

$ go run main.go Michael


index.htmlを表示すると、「Michael」と表示されます。
os.Args[0]は対象ファイルを指し、この例ですとmain.goになります。