Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie muss ich das verstehen?
alpha-centauri
2005-06-07, 10:14:20
http://rowa.giso.de/german/shell-scripte.html
Bin ich grad am lesen.
hab also eine Datei mit script.txt erstellt. zwei befehle reingesetzt und mit chmod u+x das ganze ausfuehrbar gemacht.
was ich nicht ganz verstehe, ist folgender aufruf des scriptes:
./script.txt
wofuer steht der ./ ?
wieso lang es nicht, einfach nur script.txt auszufuehren ?
ist dieses ./ allgemeingueltig ?
Das ./ zeigt immer auf das Verzeichnis, in dem du dich gerade befindest.
./script.txt
bedeutet also du führst die Datei script.txt aus dem aktuellen Verzeichnis aus. Wenn du das ./ weglässt, wird nur nach Befehlen in deinem PATH gesucht und so die Datei script.txt nicht gefunden. Welche Verzeichnisse alle zu deinem PATH gehören, kannst du mit echo $PATH rausfinden.
Hab ich das jetzt doof erklärt? :biggrin:
alpha-centauri
2005-06-07, 10:36:08
Das ./ zeigt immer auf das Verzeichnis, in dem du dich gerade befindest.
./script.txt
bedeutet also du führst die Datei script.txt aus dem aktuellen Verzeichnis aus. Wenn du das ./ weglässt, wird nur nach Befehlen in deinem PATH gesucht und so die Datei script.txt nicht gefunden. Welche Verzeichnisse alle zu deinem PATH gehören, kannst du mit echo $PATH rausfinden.
Hab ich das jetzt doof erklärt? :biggrin:
klar. macht schon sinn.
nehmen wir an, ich haette ein programm blabla.exe (klar, gibts nicht - beispiel:) unter /root/ liegen. das programm muss ich dann doch auch als ./blabla.exe ausfuehren ?
PatkIllA
2005-06-07, 10:42:39
klar. macht schon sinn.
nehmen wir an, ich haette ein programm blabla.exe (klar, gibts nicht - beispiel:) unter /root/ liegen. das programm muss ich dann doch auch als ./blabla.exe ausfuehren ?
wenn du in /root/ bist schon. Ansonsten geht auch einfach /root/blabla.exe oder relative Pfadnamen.
Ist unter Win eigentlich genauso, nur das da auch im aktuellen Pfad gesucht wird und der Slash normalerweise andersherum ist
Im Gegensatz zu Windows sucht Unix nicht automatisch im aktuellen Pfad nach einer Executable, deshalb must du sie explizit mit ./ aufrufen.
ThePsycho
2005-06-07, 17:52:08
natürlich kann man es aber so einstellen, dass ein "./" unnötig wird.
in einer bash z.B. so:
export PATH="$PATH:."
alpha-centauri
2005-06-07, 18:22:41
natürlich kann man es aber so einstellen, dass ein "./" unnötig wird.
in einer bash z.B. so:
export PATH="$PATH:."
gib mir noch z wei wochen linux, dann versteh ic hdas :)
Xanthomryr
2005-06-07, 21:40:36
gib mir noch z wei wochen linux, dann versteh ic hdas :)
Dadurch wird das aktuelle Verzeichnis, also der ., in der Pathvariable ($PATH) aufgenommen.
Allerdings hat es ja einen Grund warum das nicht dadrin steht, so kann man nämlich nicht ausversehen ein Script starten.
Der Grund ist doch wohl eher dass die Programme sich in Unix normal eh in /usr/bin, /bin, etc. befinden und nicht bei den Daten.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.