Avatar billede conrad Nybegynder
06. november 2003 - 09:49 Der er 13 kommentarer og
1 løsning

sætte PATH vha "bat" fil

Hejsa
Lad mig starte med at sige at jeg ved meget lidt om Linux.

Og så til spørgsmålet: jeg ønsker at kunne ændre nogle variable så som PATH mv ved at kalde en "bat" fil (det hedder det vel ikke på linux). Mine varible bliver lige nu sat i bash_profile og jeg ønsker at kunne ændre dem (frem og tilbage) ved at kalde en fil fra en shell.
Avatar billede mfalck Praktikant
06. november 2003 - 09:59 #1
#!/bin/bash

PATH=/usr/local/bin:$PATH
export PATH

[$PATH er den gamle path]

evt kan du gøre det i /etc/profile (for alle brugere) eller i ~/.bash_profile
Avatar billede mfalck Praktikant
06. november 2003 - 09:59 #2
det hedder et shell-script under unix - ikke en bat fil :-)
Avatar billede conrad Nybegynder
06. november 2003 - 10:18 #3
mfalck>> det er vist det jeg gør nu i min .bash_profile.
Det jeg ønsker at opnå er : jeg starter en shell -> PATH mm sættes vha .bash_profile. en del af PATH er måske /home/program-v1:

Nu øsnker jeg fra en shell at ændre PATH så jeg kan køre home/program-v2 istedet. Jeg tror ikke jeg kan ha begge da der er en masse fælles filer og libraries som de begge benytter
Avatar billede mfalck Praktikant
06. november 2003 - 10:20 #4
så skal du lave et program noget i stil med

#!/bin/bash

PATH=home/program-v2:/bin:/usr/bin:/usr/local/bin:[hvad du ellers har brug for]
export PATH
Avatar billede conrad Nybegynder
06. november 2003 - 10:26 #5
læses bash_profile hver gang jeg åbner en shell? I så fald kunne jeg måske ha 2 forskellige som jeg skiftede med simpelthen ved at kopiere
Avatar billede mfalck Praktikant
06. november 2003 - 10:28 #6
den læses i al fald hver gang du logger ind .. jeg _mener_ at den bliver læst hver gang du åbner et vindue.. men det må du lige teste selv (kører ikke x-win).
Avatar billede lap Nybegynder
06. november 2003 - 16:09 #7
husk, at hvis du ønsker at øndre variable i den kørende shell skal din "bat"fil sources (som det kaldes) - ved at køre den som ". script.sh"
Avatar billede conrad Nybegynder
06. november 2003 - 16:39 #8
kan du give et lille eksempel? På hvordan filen skal se ud, og hvor den skal placeres?
Avatar billede lap Nybegynder
06. november 2003 - 16:50 #9
filen /usr/local/bin/skiftpath.sh (under forudsætning af, at /usr/local/bin er med i path fra starten af):

#!/bin/bash
PATH1=home/program-v2:/bin:/usr/bin:/usr/local/bin
PATH2=home/program-v1:/bin:/usr/bin:/usr/local/bin

if [ "$PATH1" = "$PATH" ]
then
  PATH=$PATH2
else
  PATH=$PATH1
fi
export PATH

husk chmod 755 på filen - den kaldes:

# . skiftpath.sh

Jeg udvidede den lige til at skifte imellem 2 forskellige setups - hhv. PATH1 og PATH2 - så vil hvert kald give "den anden" setup.
Avatar billede lap Nybegynder
09. november 2003 - 22:14 #10
lukketid?
Avatar billede conrad Nybegynder
09. november 2003 - 22:15 #11
har ikke fået det afprøvet endnu- prøver det imorgen
Avatar billede conrad Nybegynder
12. november 2003 - 13:43 #12
lap> Er det vigtigt at filen ligger i usr/local/bin ? for der har jeg ikke adgang.
Kører jeg den fra et andet dir så bliver PATH ganske rigtig tildelt værdien inde i "scriptet"
det kan man se ved echo $PATH inden export PATH.
Men i shell'en er den ikke blevet ændret?
Avatar billede conrad Nybegynder
12. november 2003 - 14:10 #13
glem det, jeg havde overset dit punktum . skiftpath.sh - det virker. Tak for det! læg lige et svar
Avatar billede lap Nybegynder
12. november 2003 - 17:57 #14
velbekomme :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester