Sådan Sender du Output fra en Kommando til Input af To Andre Kommandoer Samtidigt

Hvordan kan output fra en kommando sendes til input af to andre kommandoer samtidigt?

For at sende output fra en kommando til input af to andre kommandoer samtidigt, kan du bruge teknikker som tee kommandoen, process substitution eller named pipes (FIFO) i Unix/Linux shell.

Hvordan kan output fra en kommando sendes til input af to andre kommandoer samtidigt?

For at sende output fra en kommando til input af to andre kommandoer samtidigt, kan du bruge forskellige teknikker afhængigt af det miljø og de værktøjer, du arbejder med. Her er nogle metoder, der kan anvendes i Unix/Linux shell:

  • Brug af tee kommandoen:

    Den mest almindelige metode er at bruge tee kommandoen, som kan kopiere output til en eller flere filer og samtidig sende det til standard output. Dette kan kombineres med rør (pipes) for at sende output til flere kommandoer.

    kommando | tee >(kommando1) >(kommando2)

    Her er en praktisk anvendelse:

    echo "Hello World" | tee >(grep Hello) >(grep World)
  • Brug af process substitution:

    Process substitution tillader brug af en proces som en fil. Dette kan bruges til at sende output fra en kommando til flere andre kommandoer.

    kommando | tee >(kommando1) >(kommando2)
  • Brug af named pipes (FIFO):

    En anden metode er at bruge named pipes (FIFO). Dette kræver oprettelse af midlertidige filer, som kan bruges til at dirigere output til flere kommandoer.

    
    mkfifo pipe1 pipe2
    kommando > pipe1 > pipe2 &
    kommando1 < pipe1 &
    kommando2 < pipe2 &
        

Disse metoder kan hjælpe dig med at dirigere output fra en enkelt kommando til flere andre kommandoer samtidigt, hvilket kan være nyttigt i forskellige automatiserings- og dataanalyseopgaver.