Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: sed + $HOME  (gelezen 565 keer)

servela

  • Gast
sed + $HOME
« Gepost op: 2007/02/23, 02:48:12 »
Hallo,
ik ben aan een project bezig dat ik zowel voor windows als voor linux ontwikkel.
Omwille van het niet altijd hebben van alle schrijfrechten bij een linux omgeving werk ik dus in de homedirectorie van de gebruiker.

Het probleem is echter dat deze homedirectorie telkens verschilt bij verschillende linuxinstallatie. Ik weet wel dat er een glib functie is voor deze variabele op te vragen. Zo werkte ik eerst, maar dat is vrij omslachtig omdat ik in windows gewoon met "#define" kan werken.

Nu had ik al deze paden in een constants.h gestoken en de paden voor linuxgebruik via mijn makefile eerst aangepast voor de huidige linuxomgeving alvorens alles te compileren.

Dit deed ik als volgt :

[Makefile]

config:
   sed 's/__HOME__/\'$(HOME)'\/.xchat2\/stego/' constants.h > constants.h_temp
   rm constants.h
   mv constants.h_temp constants.h

[/Makefile]

in constants.h verving ik __HOME__ door de lokale homedirectorie+wat extra
Werkte in Slackware probleemloos.

Maar nu ben ik terug thuis verder aan het ontwikkelen op mijn Ubuntu en merk ik dat dit niet gaat in Ubuntu.
Ik kan $HOME niet gebruiken. Waarschijnlijk omdat er '/' in voorkomt en sed dit als einde interpreteerd ofzo ?

Kan iemand mij een hint geven of een duwtje in de juiste richting om een oplossing te vinden ?

Mvg alexander

Offline Kiwinote

  • Lid
    • Launchpad
sed + $HOME
« Reactie #1 Gepost op: 2007/02/23, 10:35:46 »
Home directory is ook gewoon ~/ ,dus "mkdir ~/temp" maakt een temp file aan in de homemap.

Offline Tukcedo

  • Lid
    • http://www.tukcedo.nl
sed + $HOME
« Reactie #2 Gepost op: 2007/02/23, 11:58:12 »
Er is een ander probleem met je script en dat is dat ' (single quote) interpretatie van je $HOME variabele verhindert, maar dus letterlijk "$HOME" blijft. Als je daarentegen " (double quote) gebruikt, dan wordt er wel interpretatie gebruikt en krijg je bijv. /home/pietje. Maar als je "su'd" naar de betreffende gebruiker is ~ inderdaad een goede methode.
Tukcedo Services - Unix en Linux Consultants
http://www.tukcedo.nl

servela

  • Gast
sed + $HOME
« Reactie #3 Gepost op: 2007/02/27, 23:17:00 »
Bedankt !!

Daar was ik naar op zoek :)

Mvg Alexander