2022年11月25日 星期五

Golang slice 研究筆記

以前有研究過 Go silce 的指針,後來看了一些文章,才知道說 Go 本身在底層還有一個 array 來處理 slice。


簡單說,我今天建立一個 slice,實際上同時建立了一個 array

而array 實際上就是個指針


所以執行以下 code 會 print 出同樣的值


arr1 := []int{1, 2, 3}
arr2 := arr1

fmt.Printf("%p\n", &arr1[2])
fmt.Printf("%p\n", &arr2[2])

換言之,arr1[1] = 10 同時會更改到 arr2[1],因為兩者底層的 array 是同一個。

2022年11月2日 星期三

Shell script 在執行程式時,遇到詢問時,如何自動回應

某些程式在執行的過程中,會進行詢問,舉例來說:

$ some-program 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi mattis velit purus, et bibendum neque dapibus ut. Aliquam erat volutpat. Sed vulputate fermentum eros eu consequat. Vivamus in tellus sit amet dui fringilla tempor sed in lectus. Vestibulum dapibus justo elit, imperdiet vehicula nisi varius id. Nulla posuere ante eu augue commodo ultricies. Nulla nec mauris elit. Donec dolor dolor, interdum eget eleifend ac, rhoncus sit amet libero. Proin ullamcorper luctus libero, id porta tellus ultricies venenatis. Nunc lobortis vulputate diam, in dictum libero scelerisque eget. In et est nulla. Integer venenatis vitae ligula ac faucibus.

----------

Accept? (y/N):

詢問你是否同意,如果同意才能繼續進行。


如果我只是自己開終端機執行也就算了,鍵盤輸入 y 就好,但如果是寫 shell script 就不一樣了