使用多个参数运行Linux命令
经过一些挖掘后,我可以从go运行Linux命令,如下所示:使用多个参数运行Linux命令,linux,go,Linux,Go,经过一些挖掘后,我可以从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 $somepor
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("ssh", "-p port", "user@ip", "'ls'")
如果您需要更详细的说明,也可以查看软件包。根据关于软件包的文档,程序名和参数是命令
方法的不同参数。
你应该这样做:
exec.Command("ssh", "-p port", "user@ip", "'ls'")
如果您需要更详细的说明,还可以查看软件包。如果您希望在远程计算机上运行多个命令,下面的技巧可能会帮助您实现这一点
Ssh username@ip < EOf
ls -I
Pwd
Uname
Eof
Sshusername@ip
请注意,它不会传递任何特殊字符,如
代码>等。如果您想在远程机器上运行多个命令,下面的技巧可能会帮助您实现这一点
Ssh username@ip < EOf
ls -I
Pwd
Uname
Eof
Sshusername@ip
请注意,它不会传递任何特殊字符,如代码>等