お世話になっております。Ezです。
最近Go言語なるものを触れております。
環境はLinux(CentOS,Ubuntu)が多いので、Go言語をやりつつも結局はシェルにやらせてしまっている部分が多いです。
そんな中下記の問題にぶち当たりました。
Go言語内でシェルを使うには?
たいがいの言語だと
hoge = `ls -al`
などと、バッククオートで囲めばいい感じにできるのですがgo言語だと出来ずに詰まっておりました。
調べたところ下記のようなコードを実装すれば、go言語でもシェルが使えるようになりました。
package main import ( "fmt" "log" "os/exec" ) func main() { out, err := exec.Command("ls","-al").Output() if err != nil { log.Fatal(err) } fmt.Printf("result of 'ls -al' \n%s\n", out) }
ただ、pingを実装させようとすると何も返事が返ってきません・・・。
stream的といいますか、表現が難しいのですが・・・
コマンドを打った結果がバチっと返ってくる系の処理であれば、上記でいけるのですが
コマンドを打った結果がバチっと返ってこない(pingとかtcpdumpとか・・・)系の処理の場合はどのように表記すれば実装できますでしょうか?
-c オプションで回数制限するのはなしです。
(回数制限したら結果が表示されました)
go言語に詳しい方がいらっしゃいましたらアドバイス頂けないでしょうか?
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。