我想在golang程序中运行一个交互式shell脚本,比如包装一个“ping 8.8.8.8”、“python”、“bc”、“mysql -H -P -u -p”。golang 程序应该在它自己完成调用交互式命令或 shell 并与用户保持交互时退出。
我已经尝试过“exec.Command(“python”).Run()”,但是golang 程序刚刚完成并且没有留下任何东西给我。
func (h ConnectHandler)ConnectMySQL() {
logrus.Debug("ConnectMySQL, script:",common.CONF.FilePath.MySQLConnectScriptPath)
err :=exec.Command("bash",common.CONF.FilePath.MySQLConnectScriptPath).Run()
if err != nil{
logrus.Errorf("ConnectMySQL failed, exit 1,%s",err)
os.Exit(1)
}
}
Run Code Online (Sandbox Code Playgroud) 我想使同步功能异步
public JobSync()
{
// a lot of logic
}
Run Code Online (Sandbox Code Playgroud)
两个都
public async JobAsync()
{
JobSync()
await Task.CompleteTask;
}
Run Code Online (Sandbox Code Playgroud)
和
Task.Run(()=>JobSync())
Run Code Online (Sandbox Code Playgroud)
作品,
但是两种方式有什么区别吗?