首页 » 网站推广 » golang履行phpexec技巧_golang 实行系统敕令

golang履行phpexec技巧_golang 实行系统敕令

访客 2024-11-11 0

扫一扫用手机浏览

文章目录 [+]

golang实行命令的包:os/exec

查找命令的绝对路径

cmdPath , err := exec.LookPath(\公众ls\"大众)if err !=nil{fmt.Println(err)}fmt.Println(cmdPath)创建命令工具

func Commandfunc Command(name string, arg ...string) Cmd

函数返回一个Cmd,用于利用给出的参数实行name指定的程序。
返回值只设定了Path和Args两个参数。

golang履行phpexec技巧_golang  实行系统敕令

如果name不含路径分隔符,将利用LookPath获取完全路径;否则直策应用name。
参数arg不应包含命令名。

golang履行phpexec技巧_golang  实行系统敕令
(图片来自网络侵删)

cmdPath , err := exec.LookPath(\公众ls\公众)if err !=nil{pacnic(err)}command := exec.Command(cmdPath,\"大众-l\"大众)

实行命令

go供应了好几个函数运行命令

func (c Cmd) Run() error

Run实行c包含的命令,并壅塞直到完成。

如果命令成功实行,stdin、stdout、stderr的转交没有问题,并且返回状态码为0,方法的返回值为nil;如果命令没有实行或者实行失落败,会返回ExitError类型的缺点;否则返回的error可能是表示I/O问题。

func (c Cmd) Start() error

Start开始实行c包含的命令,但并不会等待该命令完成即返回。
Wait方法会返回命令的返回状态码并在命令返回后开释干系的资源。

func (c Cmd) Wait() error

Wait会壅塞直到该命令实行完成,该命令必须是被Start方法开始实行的。

如果命令成功实行,stdin、stdout、stderr的转交没有问题,并且返回状态码为0,方法的返回值为nil;如果命令没有实行或者实行失落败,会返回ExitError类型的缺点;否则返回的error可能是表示I/O问题。
Wait方法会在命令返回后开释干系的资源。

func (c Cmd) Output() ([]byte, error)

实行命令并返回标准输出的切片。

func (c Cmd) CombinedOutput() ([]byte, error)

实行命令并返回标准输出和缺点输出合并的切片。

只是实行命令,不须要读取输出,用Start或者Run,然后判断err即可; 由于Start是没有等待的,以是须要利用Wait去等。

如果须要获取输出,及可以用OutPut或者CombinedOutput。

例如:

cmdPath , err := exec.LookPath(\"大众ls\"大众)if err !=nil{panic(err)}command := exec.Command(cmdPath,\公众-l\公众)result , err := command.CombinedOutput()if err !=nil{ fmt.Println(\"大众命令实行失落败:\"大众+err.Error())}fmt.Println(string(result))

利用管道实行命令

package mainimport (\"大众bytes\"大众\公众fmt\"大众\"大众io\"大众\公众os\"大众\公众os/exec\"大众)func main() {ps := exec.Command(\公众ps\公众, \"大众aux\"大众)grep := exec.Command(\"大众grep\"大众, \"大众-i\"大众, \"大众chrome\"大众)// 创建一个管道r, w := io.Pipe()defer r.Close()defer w.Close()// ps向管道的一端写ps.Stdout = w// grep从管道的一端读grep.Stdin = rvar buffer bytes.Buffer// grep的输出为buffergrep.Stdout = &buffer_ = ps.Start()_ = grep.Start()ps.Wait()w.Close()grep.Wait()io.Copy(os.Stdout, &buffer)fmt.Println(buffer.String())}

标签:

相关文章

php常量率低技巧_PHP 常量详解教程

PHP 常量常量是单个值的标识符(名称)。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。注释...

网站推广 2024-12-19 阅读0 评论0