下面的代码可以在Ubuntu上运行,它是一个回显输入的示例程序,除非您键入"new console",在这种情况下,在另一个控制台中再次执行.
它通过执行:
gnome-terminal -e <program>
Run Code Online (Sandbox Code Playgroud)
请注意,这可能是特定于操作系统的,因为每种操作系统风格都有不同的方式来打开新的shell窗口.
例如,在Windows中,似乎可以使用以下方法实现:
cmd /C start <program>
Run Code Online (Sandbox Code Playgroud)
(虽然我现在无法测试)
Ubuntu的示例工作程序:
package main
import (
"fmt"
"bufio"
"os"
"os/exec"
"log"
)
func main() {
progPath, err := os.Executable()
if err != nil {
log.Fatal(err)
}
fmt.Println(`Enter text to echo (or "new console" to open a new console)`)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
text := scanner.Text()
if text == "new console" {
cmd:= exec.Command("gnome-terminal","-e", progPath)
cmd.Start()
} else {
fmt.Println(scanner.Text())
}
fmt.Println(`Enter text to echo (or "new console" to open a new console)`)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |