Maison > développement back-end > Golang > le corps du texte

Comment détecter si une commande est transmise en Go ?

Linda Hamilton
Libérer: 2024-11-04 16:57:02
original
498 Les gens l'ont consulté

How to Detect If a Command is Piped in Go?

Détection de canal dans Go

Dans Go, détecter si une commande est canalisée est crucial pour adapter son comportement de manière appropriée. Une commande redirigée reçoit les entrées d'une autre commande via un tube, tandis qu'une commande non redirigée interagit directement avec le terminal.

Pour déterminer si une commande est redirigée, utilisez la fonction os.Stdin.Stat() pour examiner les informations du fichier de l'entrée standard (Stdin). Si le mode du fichier renvoie une valeur avec le bit os.ModeCharDevice effacé, cela indique que les données proviennent d'un canal. Sinon, cela suggère que les données sont saisies depuis le terminal.

Voici un exemple pour illustrer :

<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>
Copier après la connexion

Dans ce script, la fonction os.Stdin.Stat() vérifie les informations de fichier associées à l’entrée standard. Si le mode résultant indique un fichier qui n'est pas un périphérique de caractères (pipe), il affiche "les données proviennent d'un tube". Sinon, il affiche « les données proviennent du terminal ».

En exploitant os.Stdin.Stat() pour détecter l'utilisation des canaux, vous pouvez optimiser vos commandes Go pour gérer efficacement les entrées canalisées et offrir une expérience utilisateur transparente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!