1 Star 0 Fork 0

kzangv/gsf-fof

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
common.go 753 Bytes
一键复制 编辑 原始数据 按行查看 历史
kzangv 提交于 2023-03-21 13:53 . fixed
package shell
import (
"context"
)
type Result struct {
output string
err error
}
type Cmd interface {
New(command string)
Exec() (string, error)
Destroy() error
}
// ExecShell 执行shell命令,可设置执行超时时间
func ExecShell(ctx context.Context, command string) (string, error) {
return ExecShellEx(ctx, newCmd(), command)
}
// ExecShellEx 执行shell命令,可设置执行超时时间
func ExecShellEx(ctx context.Context, cmd Cmd, command string) (string, error) {
cmd.New(command)
receiver := make(chan Result)
go func() {
output, err := cmd.Exec()
receiver <- Result{output, err}
}()
select {
case <-ctx.Done():
return "", cmd.Destroy()
case result := <-receiver:
return result.output, result.err
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/kzangv/gsf-fof.git
git@gitee.com:kzangv/gsf-fof.git
kzangv
gsf-fof
gsf-fof
v0.3.0

搜索帮助