掘り下げた後、次のように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パッケージを確認することもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加