前言
Go 作为一种可用于创建高性能网络和并发系统的编程语言,它的生态应用变得越来越广泛,同时,这也激发了开发人员使用 Go 作为脚本语言的兴趣。虽然目前 Go 还未准备好作为脚本语言 “开箱即用” 的特性,用来替代 Python 和 Bash ,但是我们只需要一点点准备工作就可以达到想要的目标。
Google 公司的软件工程师 Eyal Posener 为 Go 用作脚本语言提供了更多的理由,例如,丰富的标准库和语言的简洁性使得维护工作变得更加容易。
为了让 Go 编写的脚本在 shell 脚本程序中表现良好,Codenation 的工程师使用了许多有用的 Go 软件包:
- github.com/fatih/color 是用于输出对应编码颜色的包。
- github.com/schollz/progressbar 是用于为执行时间过久的任务创建进度条的包。
- github.com/jimlawless/whereami 是用于捕获源代码的文件名、行号、函数等信息的包,这对于改正错误信息十分有用!
- github.com/spf13/cobra 是用于更轻松地创建带有输入选项和相关文档的复杂脚本的包。
Hello
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Hello", os.Args[1])
os.Exit(42)
}
执行
$ go run example.go world
Hello world
exit status 42
$ echo $?
1