golang での ls-lR
Menu
golang を install する
brew install goGOROOT/GOPATHの設定
export GOPATH=/Users/kono/src/go path=($GOPATH/bin $path) export GOROOT="/usr/local/opt/go/libexec" export GO111MODULE=onを ~/.zshenv に書く (.zhsrc でも良い)
あるいは、server上で
singularity shell --shell /bin/zsh /mnt/nvme0/singularity/teachers/kono/os_complete/os_complete.sifとする
Direcoty を作る
% mkdir -p ~/src/go/src/FileWriteGo/ie.u-ryukyu.ac.jp/hg/teacher/kono/os/FileWriteGo2019 % cd ~/src/go/src/FileWriteGo/ie.u-ryukyu.ac.jp/hg/teacher/kono/os/FileWriteGo2019hg repository にそった名前にすること。studuents/y18/e18...
go module を作る
% go mod init ie.u-ryukyu.ac.jp/hg/teacher/kono/os/FileWriteGo2019
main.go を作る
package main import ( "fmt" ) func main() { fmt.Println("hello") }
go build
go install
$GOPATH/bin/FileWriteGo2019ができるので実行する。
ReadDirFSを使う
ReadDirFS を使って Directoryに access する 例題はこんな感じdebug
+braun+os_complete+kono cat go.mod module ie.u-ryukyu.ac.jp/teacher/kono/os/fileWrite go 1.19 +braun+os_complete+kono dlv debug ie.u-ryukyu.ac.jp/teacher/kono/os/fileWrite Type 'help' for list of commands. (dlv) b main.main Breakpoint 1 set at 0x4c2b33 for main.main() ./main.go:13 (dlv) continue > main.main() ./main.go:13 (hits goroutine(1):1 total:1) (PC: 0x4c2b33) 8: 9: func sub1() { 10: fmt.Println("sub1") 11: } 12: => 13: func main() { 14: u := fileIO.FileIO{} 15: getOpts(&u) 16: fmt.Println("Hello, main !!"+ u.FileName) 17: u.FileWrite() 18: sub1() (dlv) n > main.main() ./main.go:14 (PC: 0x4c2b3a) 9: func sub1() { 10: fmt.Println("sub1") 11: } 12: 13: func main() { => 14: u := fileIO.FileIO{} 15: getOpts(&u) 16: fmt.Println("Hello, main !!"+ u.FileName) 17: u.FileWrite() 18: sub1() 19: fmt.Println("Hello, 世界") (dlv) n > main.main() ./main.go:15 (PC: 0x4c2b81) 10: fmt.Println("sub1") 11: } 12: 13: func main() { 14: u := fileIO.FileIO{} => 15: getOpts(&u) 16: fmt.Println("Hello, main !!"+ u.FileName) 17: u.FileWrite() 18: sub1() 19: fmt.Println("Hello, 世界") 20: } (dlv) p &u ("*ie.u-ryukyu.ac.jp/teacher/kono/os/fileWrite/fileIO.FileIO")(0xc000134090) (dlv) x -fmt hex -count 20 -size 8 0xc000134090 0xc000134090: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0xc0001340d0: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0xc000134110: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 (dlv)