コマンドが Go でパイプされているかどうかを検出するには?

Linda Hamilton
リリース: 2024-11-04 16:57:02
オリジナル
501 人が閲覧しました

How to Detect If a Command is Piped in Go?

Go でのパイプ検出

Go では、コマンドがパイプされているかどうかを検出することは、その動作を適切に調整するために重要です。パイプされたコマンドはパイプを通じて別のコマンドから入力を受け取りますが、パイプされていないコマンドは端末と直接対話します。

コマンドがパイプされているかどうかを確認するには、os.Stdin.Stat() 関数を使用して調べます。標準入力(Stdin)のファイル情報。ファイルの Mode が os.ModeCharDevice ビットがクリアされた値を返した場合、データがパイプから来ていることを示します。それ以外の場合は、データが端末から入力されていることを示します。

以下に例を示します:

<code class="go">package main

import (
    "fmt"
    "os"
)

func main() {
    fi, _ := os.Stdin.Stat()

    if (fi.Mode() & os.ModeCharDevice) == 0 {
        fmt.Println("data is from pipe")
    } else {
        fmt.Println("data is from terminal")
    }
}</code>
ログイン後にコピー

このスクリプトでは、os.Stdin.Stat() 関数が次のことをチェックします。標準入力に関連付けられたファイル情報。結果のモードがキャラクタ デバイス (パイプ) ではないファイルを示している場合は、「データはパイプからのものです」と出力されます。それ以外の場合は、「データは端末からのものです」と出力されます。

os.Stdin.Stat() を利用してパイプの使用状況を検出することで、Go コマンドを最適化してパイプ入力を効率的に処理し、シームレスなユーザー エクスペリエンスを提供できます。

以上がコマンドが Go でパイプされているかどうかを検出するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!