執行shell腳本後,得到錯誤後,我有一個簡單的shell腳本(名爲copy.sh
),它看起來象下面這樣: -通過Golang
#! /bin/sh
cp $1 $2
我做chmod 777 copy.sh
。
我有執行上述殼代碼golang代碼: -
package main
import (
"fmt"
"os/exec"
)
func main() {
_, err := exec.Command("/Users/debraj/copy.sh", "/Users/debraj/temp.txt", "/Users/debraj/gotest/").Output()
if err != nil {
fmt.Println("Failed to execute command " + err.Error())
return
}
fmt.Printf("\nCopy Successful - %v")
}
上面的代碼被表示爲下面的輸出: -
jabongs-MacBook-Pro-4:src debraj$ go run copyerr.go
Failed to execute command exit status 1
jabongs-MacBook-Pro-4:src debraj$
但錯誤我從外殼腳本接收看起來像下面: -
jabongs-MacBook-Pro-4:~ debraj$ ./copy.sh /Users/debraj/temp.txt /Users/debraj/gotest/
cp: /Users/debraj/gotest/temp.txt: Permission denied
有人可以讓我知道我怎麼能得到相同的錯誤信息噸帽子是由shell腳本返回的?
如果我不;噸做chmod 777 copy.sh
和文件有權限如下: -
jabongs-MacBook-Pro-4:~ debraj$ ls -la copy.sh
-rw-r--r-- 1 debraj staff 21 Sep 29 13:28 copy.sh
然後golang代碼使輸出的shell腳本給出。有人可以讓我知道爲什麼這是這樣的行爲?
我對
- Golang 1.7
- 的Mac OS X 10.11.4
混合輸出代替輸出會不會更好?你忽略了stderr。 – lofcek