经过一些挖掘后,我可以这样运行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方法的不同参数。您应该这样做:
Command
exec.Command("ssh", "-p port", "user@ip", "'ls'")
如果您需要更详细的说明,还可以查看go.crypto / ssh软件包。