[英]Running Linux commands with multiple arguments
經過一番挖掘后,我可以這樣運行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軟件包。
如果要在遠程計算機上運行多個命令,以下技巧可以幫助您實現這一目標。
Ssh username@ip < EOf
ls -I
Pwd
Uname
Eof
請注意,它不會傳遞任何特殊字符,例如. ,
. ,
等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.