簡體   English   中英

使用多個參數運行Linux命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM