Kør Shell Script og Evaluer Output med Source Uden Midlertidig Fil

Hvordan kan et program, der udskriver shell-variabler til STDOUT, køres fra en shell script, så output evalueres med source, uden at bruge en midlertidig fil?

For at køre et program, der udskriver shell-variabler til STDOUT, og få outputtet evalueret med source uden at bruge en midlertidig fil, kan du bruge process substitution som vist: `source <(./generate_vars.sh)`.

Hvordan kan et program, der udskriver shell-variabler til STDOUT, køres fra en shell script, så output evalueres med source, uden at bruge en midlertidig fil?

For at køre et program, der udskriver shell-variabler til STDOUT, og få outputtet evalueret med source uden at bruge en midlertidig fil, kan du bruge en kombination af process substitution og source kommandoen. Her er en trin-for-trin guide:

  1. Antag, at du har et program, der udskriver shell-variabler. For eksempel, et script kaldet generate_vars.sh:
#!/bin/bash
echo "VAR1=value1"
echo "VAR2=value2"
  1. Brug process substitution til at køre programmet og få outputtet evalueret af source kommandoen:
source <(./generate_vars.sh)

Her er hvad der sker i ovenstående kommando:

  • ./generate_vars.sh køres, og dets output sendes til en midlertidig fil, som process substitution håndterer.
  • source kommandoen evaluerer indholdet af denne midlertidige fil, som om det var en del af det aktuelle script.

Dette gør det muligt at undgå brugen af en midlertidig fil, da process substitution håndterer det internt.

Her er et komplet eksempel på et shell script, der bruger denne teknik:

#!/bin/bash

# Kør programmet og source outputtet
source <(./generate_vars.sh)

# Bekræft at variablerne er sat
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"

Ved at bruge denne metode kan du dynamisk indlæse variabler fra et eksternt program direkte ind i dit shell script uden at skulle oprette og håndtere midlertidige filer.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker