sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #89096
Re: Finde stien til et shellscript
Kenneth Ahn Jensen wrote:
Hep
Jeg vil gerne have at mit bash-script opnår en smule selvbevidsthed.
Når jeg kører scriptet skal det gerne kunne finde ud af hvor det ligger
henne, fordi der så skal gøres noget relativt til dette katalog.
Hvordan finder jeg ud af det?
$0 giver mig jo bare det "navn" som scriptet er startet med, så det kan
være /home/user/bin/script.sh eller ./script.sh (eller endnu værre
../../bin/script.sh ).
Det vil selvfølgelig altid være den relative sti til hvor min CWD er,
men jeg ville gerne kunne finde den absolutte, uden at skulle
konkatenere $CWD med $0 og dermed kunne få
/home/user/some/path/../../bin/script.sh).
Nogen forslag?
Det er nogle fantastisk snedige og indviklede metoder, der er forslået i
denne tråd.
Der er kun én rimelig måde at gøre det på.
Private ekserkverbare filer, det være sig bashscripts eller andre typer,
samles i ét directory, f.eks. /home/user/bin. Denne sti skal inkluderes
i environment variablen PATH.
Det gøres sådan:
I filen /home/user/.bashrc tilføjes: export PATH=$PATH:/home/user/bin
For at det kan virke straks skal man bruge kommandoen 'source .bashrc' ,
og så vil det iøvrigt virke hver gang man logger ind, eller åbner en ny
Xterminal.
Prøv dette testscript:
testsh:
#!/bin/sh
echo $0
Lav cd til et vilkårligt directory,
tast testsh
Og voila: du vil se udskriften /home/user/bin/testsh
--
Med venlig hilsen
Jørgen Heesche
mailto:heesche@xxxxxxxxxxx
Registered Linux User #401007
Follow ups
References