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.
Har du brug for hjælp til at skrive Shell Scripts eller evaluere output? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige freelancere på få minutter. Få den assistance, du har brug for, og kom hurtigt videre med dit projekt!