2017-10-13 4 views
-3

Ich versuche, mein go-Programm zu machen, um eine Skriptdatei (.sh) auszuführen, die in meinem Linux (ubuntu) -System und jedes Mal bekomme ich den folgenden Fehler:kann sh-Skript mit golang nicht ausführen - Berechtigung verweigert

Got command status: fork/exec /home/myname/Code/MyProj/Server/src/: permission denied

das Skript, das ich zu laufen bin versucht, ist ziemlich einfach:

temp.sh:

echo tempscript:$1

temp.sh Berechtigungen:

-rwxrwxrwx 1 myname myname 19 oct 13 13:33 temp.sh

der golang Code, den ich das Skript auszuführen bin mit:

output, err := exec.Command("/home/myname/MyProj/Server/src/", "temp.sh").CombinedOutput() 
if err != nil { 
    fmt.Println("Error when running command. Output:") 
    fmt.Println(string(output)) 
    fmt.Printf("Got command status: %s\n", err.Error()) 
} 
fmt.Println(string(output)) 

Ich habe kein Problem, dieses Skript aus dem Terminal zu laufen, aber wenn ich versuche, es zu laufen von meinem Go-Problem bekomme ich das Erlaubnisproblem, selbst wenn ich versuchte, zu gehen, zu bauen und mein Programm mit sudo Erlaubnis zu laufen, bekomme ich noch diesen Fehler. Ich freue mich zu hören, was ich falsch mache und wie ich es lösen kann.

Vielen Dank,

Oder Yaacov

+2

'/ home/myname/MyProj/Server/src /' ist ein Verzeichnis, können Sie‘ t Führen Sie ein Verzeichnis aus. – JimB

Antwort

3

den Code wie folgt ersetzen,

output, err := exec.Command("/bin/bash", "/home/myname/MyProj/Server/src/temp.sh").CombinedOutput() 
Verwandte Themen