跳至主要内容

[pkg] os

os @ golang

Functions

os.Args:取得使用者在指令後輸入的參數

$ go run main.go foo bar

若想取得 foo 和 bar 可以使用 os.Args 這個方法,預設 os.Args[0] 會是執行該 go 執行檔的路徑,而 os.Args[1] 之後可以取得對應的參數:

func main() {
fmt.Println(os.Args[0]) // /var/folders/.../main
fmt.Println(os.Args[1]) // foo
fmt.Println(os.Args[2]) // bar
}

os.IsNotExist():判斷檔案是否存在

in, err := ioutil.ReadFile(fname)
if err != nil {
if os.IsNotExist(err) {
fmt.Println("File is not existed")
} else {
fmt.Println("Error reading file:", err)
}
}

os.Exit:終止程序 Exit

// 慣例上 code 為 0 表示程式執行成功後結束,0 以外的數字則表示程式因錯誤而結束
// func Exit(code int)

os.Exit(1)

os.Remove:移除檔案 Remove

移除指定的檔案或空資料夾:

// func Remove(name string) error

os.Remove("some-file")

os.Getwd:取得執行 go run 指令的資料夾

dir, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
fmt.Println(dir)

os.WriteFile:儲存檔案

data := []byte("Hello Go")
err := os.WriteFile("example/foo.txt", data, 0644)
if err != nil {
panic(err)
}

ENV

  • os.LookupEnv(key string) (string, bool):讀取並檢查 ENV variable 是否存在
  • os.GetEnv(key string) string:讀取 ENV variable

參考