[bash] script directory displayen

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 04-02 21:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Ik wil een scriptje maken dat zijn eigen directory weergeeft. Dus als het scriptje in /var/www staat dat de output dan /var/www is. Ik heb dit geprobeerd met 'pwd' echter geeft pwd alleen weer vanaf waar het script wordt aangeroepen. dus als ik het script in /var/www zet en ik roep hem aan vanaf /home dan geeft hij /home aan. Weet iemand of het mogelijk is dat je het script zijn eigen directory laat opzoeken?

http://www.xbmcfreak.nl/


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

Waarom wil je dat dan? je kan het scriptje toch alleen aanroepen als je zijn dir al weet? klinkt een beetje als kip-ei... :)

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 04-02 21:50

Erhnam

het Hardware-Hondje :]

Topicstarter
DeMoN schreef op vrijdag 28 januari 2005 @ 11:28:
Waarom wil je dat dan? je kan het scriptje toch alleen aanroepen als je zijn dir al weet? klinkt een beetje als kip-ei... :)
Omdat ik zijn eigen directory als variable wil meegeven :)

http://www.xbmcfreak.nl/


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

DeMoN schreef op vrijdag 28 januari 2005 @ 11:28:
Waarom wil je dat dan? je kan het scriptje toch alleen aanroepen als je zijn dir al weet? klinkt een beetje als kip-ei... :)
als het scriptje ergens in je "PATH" staat kan je hem aanroepen maar dan weet hij niet waar bijvoorbeeld zijn files zijn die in diezelfde dir staan oid :)

  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

Erhnam schreef op vrijdag 28 januari 2005 @ 11:30:
[...]


Omdat ik zijn eigen directory als variable wil meegeven :)
Maar als je dan het scriptje aanroept dan weet je toch wat het pad is? Dan kan je dat pad toch gewoon ook in een variabele zetten, heb je dat scriptje helemaal niet nodig? :)
Erkens schreef op vrijdag 28 januari 2005 @ 11:31:
[...]

als het scriptje ergens in je "PATH" staat kan je hem aanroepen maar dan weet hij niet waar bijvoorbeeld zijn files zijn die in diezelfde dir staan oid :)
Ah... op zo'n fiets :)

[ Voor 32% gewijzigd door DeMoN op 28-01-2005 11:34 . Reden: verheldering van Erkje ]

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


Verwijderd

voorbeeldje:

scriptnaam is bash_test.sh

scriptje:

#!/bin/bash
echo $0

WHOLEPATH=$0
DIRONLY=${WHOLEPATH%bash_test.sh}
echo $DIRONLY

Verwijderd

Absoluut:
Bash:
1
dirname `which $0`

Relatief:
Bash:
1
dirname $0

[ Voor 4% gewijzigd door Verwijderd op 28-01-2005 11:44 ]


Verwijderd

#!/bin/bash

pwd

Van te voren scriptje een naam geven en een chmod +x. Als je dan het scriptje runt dan laat ie de directory zien. Kan eventueel in combinatie met een variable plaatsen. Anders zal het scriptje niet runnen.

Verwijderd

Verwijderd schreef op vrijdag 28 januari 2005 @ 11:44:
Absoluut:
Bash:
1
dirname `which $0`

Relatief:
Bash:
1
dirname $0
veeeel beter :) tnx!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 04-02 21:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Super bedankt! :)

http://www.xbmcfreak.nl/


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 04-02 21:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Vreemd het scriptje loopt vast als ik het volgende doe:

code:
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
IPADDR=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed -e "s/[adr:]//g"`
IPLAST1=`echo $IPADDR | cut -f 4 -d.`
IPLAST2=$[IPLAST1 + 1]
IPFIRST1=`echo $IPADDR | cut -f 1,2,3 -d.`
IPFIRST2=`echo $IPFIRST1.`
IPNEW=`echo $IPFIRST2$IPLAST2`
echo $IPNEW
DIRNAME=dirname `which $0`
echo $DIRNAME


In het eerste gedeelte leest hij het IP van eth0 uit en telt daar 1 bij op. Het tweede gedeelte wordt niet uitgevoerd. De output van het eerste gedeelte blijft over het scherm scrollen..

http://www.xbmcfreak.nl/


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 04-02 21:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Zo werkt het wel!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
SPATH="$(cd $(dirname $0);pwd)" 
SNAME=`echo $SPATH | cut -f 4 -d/`
SDIR=`echo $SNAME | cut -b7-8`

echo $SNAME
echo $SDIR

IPADDR=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed -e "s/[adr:]//g"`
IPLAST1=`echo $IPADDR | cut -f 4 -d.`
IPLAST2=$[IPLAST1 + SDIR]
IPFIRST1=`echo $IPADDR | cut -f 1,2,3 -d.`
IPFIRST2=`echo $IPFIRST1.`
IPNEW=`echo $IPFIRST2$IPLAST2`
echo $IPNEW

http://www.xbmcfreak.nl/


  • 0xDEADBEEF
  • Registratie: December 2003
  • Niet online
offtopic:
@ Ernham: Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion." - Steven Weinberg


  • wvdburgt
  • Registratie: Juli 2003
  • Laatst online: 23-01 21:57

wvdburgt

MacOS all the way baby!

Hallo,

Allereerst sorry dat ik dit topic even wakker schop.
Ik was ook met zo iets bezig alleen dan voor OS X. helaas werkt dirname zwhich $O` niet. Iemand een idee wat wel werkt?

AMD Ryzen 5 7600X | Asus Prime X670-P | Corsair Vengeance 2x 16GB DDR5 PC5200 | XFX Speedser MERC 310 AMD 7900 XTX| http://wvdburgt.nl


  • Cyphax
  • Registratie: November 2000
  • Laatst online: 17:21

Cyphax

Moderator LNX
Volgens mij haal je "O" (letter) en "0" (NUL) door elkaar. ;)
In ieder geval in je post.

Saved by the buoyancy of citrus


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 03-02 16:28

zomertje

Barisax knorretje

Open even een vers topic, deze is wel erg oud.

Post dan ook even wat je nu hebt. Een goeie topicstart is het halve werk :)

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun

Pagina: 1

Dit topic is gesloten.