2017-03-20 5 views
0

フラグ付きバイナリファイルを実行したい。 バイナリを直接実行すると、golangプログラムの中で次のようになります。Goプログラムを使用してフラグと引数を持つバイナリを実行したい

./test --flag1 arg1 --flag2 arg2

私はos.execを使用して実行しようとしていました。

コード:それはエラーを与えているreslt ,err:= exec.Command("./test","--flag1", "arg1", "--flag2", "arg2").Output

Exit status 2

は、誰もがこの上で役立つことはできますか?

+0

あなたの 'exec.Command'呼び出しの' err'の内容は何ですか? – shizhz

+1

フラグ引数に ' - 'を追加する必要があります。 –

+0

@Gerbenはい、私はそれを拝見しませんでした編集、ありがとう – shiva

答えて

0

output, err := exec.Command("./test","flag1", "arg1", "flag2", "arg2").Output()

Output戻りバイトのスライスとエラーの両方。エラーによって示されるように、単一の戻り値を期待しているだけですが、Outputは2を返します。

EDIT:あなたの第二の問題をデバッグするためとして、コマンドからstderrを取得:

cmd := exec.Command("./test","flag1", "arg1", "flag2", "arg2") 
var stderr bytes.Buffer 
cmd.Stderr = &stderr 
err := cmd.Run() 
if err != nil { 
    fmt.Println(stderr.String()) 
    return 
} 
+0

あなたの答えをありがとうが、まだ私はエラーを取得しています終了ステータス2 – shiva

+0

私は私の応答を編集しました。 –

0

私は終了コード2つの手段「そのようなファイルやディレクトリを」推測します。実行した場所をバイナリにして、どこにテストがあるかを確認する必要があります。

シムの絶対パスを指定してください。

+0

いいえ、フラグなしの別のバイナリを試しました。絶対パスなしで動作しています。このフラグは問題を起こしています – shiva

関連する問題