[linux] cat $PWD
Geert Stappers
stappers op stappers.nl
Zo Jan 15 15:58:25 CET 2023
On Sun, Jan 15, 2023 at 12:48:41AM +0100, Mike Jonkmans via Linux wrote:
> On Sat, Jan 14, 2023 at 05:10:49PM +0100, Geert Stappers via Linux wrote:
> > On Sat, Jan 14, 2023 at 02:29:01AM +0100, Oscar Roozen via Linux wrote:
> > > On 12-01-2023 21:14, Geert Stappers via Linux wrote:
> > > > De wens^Wuitdaging is eenvoudig van een bestand met daarin $PWD
> > > > naar een bestand met de uitgeschreven waarde de Working Directory.
> > >
> > > Ik snap nog steeds niet helemaal wat je wil, maar vermoed dat ...
> > >
> >
> > Oei, dan is het aan mij om de vraag duidelijker te stellen.
> >
> > git clone https://git.sr.ht/~stappers/jan12
> >
> > ------8<----8<----8<------
> > #!/bin/bash -e
> > # demonstratiescriptje
> > # - leest het configuratiebestand
> > # - doet iets met waardes uit het config bestand
> > #
...
> > ------>8---->8---->8------
> >
> > Om dat PoC-script te kunnen draaien is er een configuratiebestand nodig.
> >
> > Waardes in dat de configbestand zijn echter afhankelijk van
> > waar de git repository is terecht gekomen. We stellen dat
> > de git repo in huidige directory, PWD, staat.
> >
> > Met een inputbestand `config.in` als
> > ------8<----8<----8<------
> > KLEUREN=$PWD/kleur
> > VORMEN=$PWD/vorm
> > ------>8---->8---->8------
> >
> > En met een script als
...
> > sed -e "s@\$PWD@$PWD@" config.in > config
...
> > maak je de `config`.
> >
> >
> > Een andere manier is `cat` de $PWD laten omzetten, als in dit script:
> > ------8<----8<----8<------
> > #!/bin/sh
> > cat << HERE > config
> > KLEUREN=$PWD/kleur
> > VORMEN=$PWD/vorm
> > HERE
> > # l l
> > ------>8---->8---->8------
> >
> > Er is dan een `config` met dezelfde inhoud als wat met
> > de andere methode wordt aangemaakt.
> >
> >
> > Nu heb ik de hoop dat er iets als "envircat" dat environmentvariabelen
> > expandeert naar hun waarde. Een of andere `eval` optie of iets anders
> > waar ik nog geen weet van heb, maar iemand van deze groep wel.
> >
> Kun je niet de $PWD/ weglaten uit config.h?
> Dan kun je $PWD bij de find(s) plakken.
Helaas is het demonstratie-scriptje niet het oorspronkelijke probleem.
Off-list kreeg ik deze tip:
cat config.in | while read ; do eval echo "${REPLY}" ; done
Met die informatie dit "generate config file script" gemaakt:
------8<----8<----8<------
#!/bin/sh
exec > config # defineert waar we de output willen hebben
cat config.in | while read LINE
do
eval echo ${LINE}
done
# l l
------>8---->8---->8------
Dank voor de tip.
Groeten
Geert Stappers
(Heeft `sed` gebruikt op de plek van het oorspronkelijke probleem.)
--
$ git push
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 12 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.60 KiB | 1.60 MiB/s, done.
Total 12 (delta 4), reused 0 (delta 0), pack-reused 0
To git.sr.ht:~stappers/jan12
51b6126..93c2563 main -> main
$
Meer informatie over de Linux
maillijst