2017-10-18 17 views
2

私は、Goを介してマシンにシェルバイナリが存在するかどうか確認しようとしています。ゴランのバイナリ存在を確認する

私はいくつかのシンプルなシェルベースのコマンド試してみました:

args := []string{"-x", "fly"} 
    o, err := exec.Command("test", args...).Output() 
    fmt.Println(err) 
    fmt.Println(o) 

をしかし、これはどんな出力は何も1の終了を持っていません。

Goには、この機能を持つものがあるかどうかは明らかです。

ありがとうございます!

+0

を@MiloChristiansenはこれが可能で重複しているか、正確な複製?私は質問が "/home/user/abc.txt"のようなファイルをチェックすることではないと思う、それは "telnet"が($ PATHで)動作するかどうかチェックする可能性が高いです。 (私はgolangを知らない) – JCasso

+0

私は、 'test -x'と同等のものを望んでいるのか、それとも他の振る舞いが必要なのかを伝えることはできません。 – JimB

+0

確かに、PATHでtelnetのようなものが動作しているかどうかをチェックしていました。実行可能ファイルへの完全なパスを見つけるために余分な作業をする必要があるため、ファイルをチェックしていませんでした。私はunixに-xのようなものがあるかどうかを調べようとしていました – jaibhavaya

答えて

2

ファイルが存在するかどうかを簡単に確認する方法の1つです。

if _, err := os.Stat("/dir/file"); os.IsNotExist(err) { 
    fmt.Printf("File doesn't exist") 
} else { 
    fmt.Printf("Exists") 
} 

詳細をご覧ください:os.Stat()os.IsNotExist()

関連する問題