Я хочу переключиться на оболочку bash из моей пользовательской оболочки в go.
Я не уверен, как уложить мой родительский процесс (пользовательская оболочка) и переключиться на дочерний процесс (bash)
Это моя часть кода.
cmd := exec.Command("bash", "-c", "/bin/bash")
stdoutStderr, err := cmd.CombinedOutput()
if err != nil {
fmt.Printf(err.Error())
}
fmt.Printf("%s\n", stdoutStderr)
Я хочу сделать это следующим образом:
myshell >> /bin/bash
$ /bin/myshell
myshell >>
код exec, но не fork
binary, lookErr := exec.LookPath("/bin/bash")
if lookErr != nil {
panic(lookErr)
}
args := []string{"/bin/bash"}
env := os.Environ()
execErr := syscall.Exec(binary, args, env)
if execErr != nil {
panic(execErr)
}
, поэтому, если я выйду из оболочки bash, моя пользовательская оболочка, конечно же, будетубит.
myshell> bash
bash-3.2$ exit
exit