登录
首页 >  Golang >  Go问答

运行带有多个参数的 Linux 命令

来源:Golang技术栈

时间:2023-04-08 08:42:32 233浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《运行带有多个参数的 Linux 命令》,就带大家讲解一下golang知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

经过一番挖掘,我可以像这样从 go 运行 Linux 命令:

func main() {
    lsCmd := exec.Command("ls")
    lsOut, err := lsCmd.Output()
    if err != nil {
        panic(err)
    }
    fmt.Println(">ls")
    fmt.Println(string(lsOut))
}

我想要做的是,在远程机器上运行以下命令:

ssh -p $someport $someuser@$someip 'ls'

我可以从终端成功执行此操作,但是当我尝试在 Go 中运行它时,出现以下错误:

panic: exec: "ssh -p $someport $someuser@$someip 'ls'": executable file not found in $PATH

更新 :为方便起见,我更新了问题。

正确答案

根据有关exec包的文档,程序名称和参数是该Command方法的不同参数。你应该这样做:

exec.Command("ssh", "-p port", "user@ip", "'ls'")

如果您需要更详细的内容,还可以查看go.crypto/ssh包。

今天关于《运行带有多个参数的 Linux 命令》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>