を経由してシェルスクリプトを実行した後、私は以下のようになります(copy.sh
命名)簡単なシェルスクリプトを持って戻ってエラーを取得: -はGolang
#! /bin/sh
cp $1 $2
私はchmod 777 copy.sh
をしました。
Iは、上記シェルコードを実行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
誰かが私にどのように同じエラーメッセージ帽子はシェルスクリプトによって返されますか?
Iドンの場合、tは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コードが出力を提供します。なぜこれがこのように振る舞っているのかを教えてもらえますか?
私は
- Golang 1.7
- のMac OS X 10.11.4
出力の代わりにCombinedOutputを使用しますか?あなたはstderrを無視しました。 – lofcek