2013-06-28 29 views
9

Ruby'de, geçerli yürütme işlemini tetiklenen tarafından değiştirmek için Kernel.exec'u kullanabilirsiniz.Geçerli işlemi değiştirin

Aynı şeyi Go’da yapmak mümkün mü?

package main 
import "syscall" 
import "fmt" 
func main() { 
    syscall.Exec("/bin/ls", []string{"ls", "-l"}, []string{}); 
    // syscall.Exec("/bin/ssh", []string{"ssh", "-p", "22", "[email protected]"}, 
    //  []string{}); 
    fmt.Println("Error can't be here"); 
} 

ama taşınabilir IFAIK değildir:

cevap

9

Bu Kernel.exec aynıdır.

+0

Birden çok parametreyi nasıl ele alıyorsunuz? Bunu deniyorum: syscall.Exec ("/ usr/bin/ssh", [] string {"- p", "22", "root @ host"}, [] string {}) 'gibi görünüyor ama çalışmıyor, çünkü hatayı alıyorum: 'ssh: ana makineye bağlan 22 bağlantı noktası 22: Ana makine için bir yol yok ' – kolrie

+0

Bu işe yarar:' syscall.Exec ("/ usr/bin/ssh", [] string {" -p 22 "," root @ host "}, [] string {})' – kolrie

+1

@kolrie, komutun adını ilk argüman olarak iletmeniz gerekiyor. onu düzeltti. – perreal

İlgili konular