Den Sun, 27 Nov 2005 15:02:45 +0100 skrev Martin Jørgensen:
> Hej,
>
> Jeg undrer mig over at dette script ikke virker:
>
> martin@linux
/> cat dtu_cvs
> #!/bin/bash
> export CVSROOT=:pserver:sxxxxxx@xxxxx.xxxx.xxx.dk:/usr/local/cvs/xxxxxxx
> export CVSEDITOR=emacs
>
> martin@linux
/> set | grep -i cvs
> CVSEDITOR=emacs
> CVSROOT=/home/martin/cvsroot
> CVS_RSH=ssh
> _=dtu_cvs
>
> Konklusion: Der er intet sket.
>
> Altså: Som "default" er environment CVSROOT=/home/martin/osv., dvs.
> kører lokalt. Når jeg så kører scriptet ./dtu_cvs så skal den blot
> eksportere CVSROOT, så jeg kan køre det på ekstern server.
>
> Skyldes det at de ændringer der laves kræver at man starter en ny shell
> fra scriptet, som ikke afsluttes eller hvordan grejer jeg den?
Du er ikke helt ved siden af - scriptet kører i en ny process, og
variablene gælder kun for den og (med export) processer den starter.
Du kan enten lade scriptet starte en ny shell, så kan du arbejde
på den anden server, og når du er færdig med det, skrive exit og
returnere til dine normale indstillinger - og så exit igen for
at logge ud.
eller også kan du køre dit scipt med
martin@linux
/> . dtu_cvs
eller
matin@linux
/> source dtu_cvs
Bruger du den metode (de gør det samme), vil der ikke blive startet
en ny shell.
Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.