Gem Input i Midlertidig Fil eller Pipe Uden Diskskrivning: Metoder og Eksempler

Hvordan kan flere linjer af input, som skal føres ind i en kommando, gemmes i en midlertidig fil eller pipe, der ikke skrives til disk, og derefter føres direkte ind i programmet?

For at gemme flere linjer af input i en midlertidig fil eller pipe uden at skrive til disk og derefter føre dem direkte ind i et program, kan du bruge metoder som Here Document, Process Substitution, Named Pipes i Unix/Linux, PowerShell i Windows eller Temporary Files i Python.

Hvordan kan flere linjer af input, som skal føres ind i en kommando, gemmes i en midlertidig fil eller pipe, der ikke skrives til disk, og derefter føres direkte ind i programmet?

For at gemme flere linjer af input i en midlertidig fil eller pipe, der ikke skrives til disk, og derefter føre dem direkte ind i et program, kan du bruge forskellige metoder afhængigt af dit operativsystem og de tilgængelige værktøjer. Her er nogle almindelige metoder:

Brug af Here Document i Unix/Linux

En Here Document (heredoc) er en måde at indtaste flere linjer af input direkte i en kommando. Dette er nyttigt i shell-scripts.


command <

Brug af Process Substitution i Unix/Linux

Process substitution tillader brug af en midlertidig fil eller pipe, der ikke skrives til disk.


command < <(echo -e "line1
line2
line3")

Brug af Named Pipes (FIFOs) i Unix/Linux

Named pipes kan bruges til at sende data mellem processer uden at skrive til disk.


mkfifo mypipe
echo -e "line1
line2
line3" > mypipe &
command < mypipe
rm mypipe

Brug af PowerShell i Windows

I Windows kan du bruge PowerShell til at opnå lignende funktionalitet.


$input = @"
line1
line2
line3
"@
$input | command

Brug af Temporary Files i Python

Hvis du arbejder med Python, kan du bruge tempfile modulet til at oprette midlertidige filer, der automatisk slettes efter brug.


import tempfile

with tempfile.TemporaryFile() as temp:
    temp.write(b"line1
line2
line3
")
    temp.seek(0)
    command(temp)

Disse metoder giver dig fleksibilitet til at håndtere flere linjer af input uden at skulle skrive dem til en permanent fil på disken.