[解決済み] Goでシステムコマンドの出力を得るには?
2023-02-17 02:08:27
質問
goプログラムの中で'ls'を実行し、その結果を文字列に格納したいとします。exec と os パッケージにプロセスをフォークするコマンドがいくつかあるようですが、それらは stdout などのファイル引数を必要とします。文字列として出力を取得する方法はありますか?
どのように解決するのですか?
編集してください。 この回答は時代遅れです。以下を参照してください。 Fatih Arslanの回答 をご覧ください。
使用方法 exec.実行 を指定することで パイプ を標準出力(必要なら標準エラー出力も)に指定します。cmd が返され、その中には os.File を含む cmd を返します。そして、それを読むには、例えば ioutil.ReadAll .
例です。
package main
import (
"exec";
"io/ioutil";
)
func main() {
if cmd, e := exec.Run("/bin/ls", nil, nil, exec.DevNull, exec.Pipe, exec.MergeWithStdout); e == nil {
b, _ := ioutil.ReadAll(cmd.Stdout)
println("output: " + string(b))
}
}
関連
-
[解決済み] Goで複数行の文字列はどのように書くのですか?
-
[解決済み] intをint64に変換するには?
-
[解決済み] オブジェクトのプロパティを二重引用符で囲んで使用するには?
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] スライスを変数入力として渡すには?
-
[解決済み] テキストファイルを文字列配列に読み込む(そして書き込む)
-
[解決済み] 構造体の値をマップの値として設定すると、"cannot assign" エラーが発生するのはなぜですか?重複
-
[解決済み] gc」と「gccgo」の主な相違点は何ですか?
-
[解決済み] 複数のゴルーチンが1つのチャンネルをリッスンする
-
[解決済み] 文字列がint型かどうかチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーでSSLが有効になっていない
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] response.Bodyを閉じないとどうなりますか?
-
[解決済み] 現在時刻に時・分・秒を足す
-
[解決済み] Goのコンパイル済み実行ファイルのサイズが巨大化する理由
-
[解決済み] golangにおけるバックティック(``)とダブルクォート("")の違いは何ですか?
-
[解決済み] Go プログラムに渡されたコマンドライン引数にアクセスするには?
-
[解決済み] ...interface{}の意味 (ドット・ドット・ドット・インターフェース)
-
[解決済み] テキストファイルの読み方を教えてください。重複
-
[解決済み] チャネルバッファサイズとは何ですか?