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:
generate_vars.sh
:#!/bin/bash
echo "VAR1=value1"
echo "VAR2=value2"
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.
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
Møbelsamling
Hjælp med at samle Ikea klædeskab
Maler
Klargøring af lejlighed til flyttesyn
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Havearbejde
Beskæring af 4 større træer
IT support
Geninstallering af windows + programmer
Elektriker
Installation af Sonos musikanlæg i hus
Rengøring
Ugentlig rengøring af lejlighed (114kvm)
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Elektriker
Opsætning af lamper i stue og soveværelse
Catering
3-retters menu til 14 mennesker