Das kommt ganz darauf an.
Wenn das script file ausgeführt werden soll dann muss man...
a.) den absoluten Pfad angeben
Rich (BBCode):
/volume1/foo/bar/scriptfile.sh
b.) den relativen Pfad d.h. wenn man sich in dem Verzeichnis befindet von wo aus man das script aufrufen möchte benötigt man
./
Das bedeutet dass in diesem Verzeichnis die Datei zu finden ist.
c.) alternativ zu b.) ist auch ein vorangestelltes 'sh' möglich um die Datei auszuführen. Denn der Befehl 'sh' wird von dem Verzeichnis aus ausgeführt worin man sich gerade befindet. Und da somit das Verzeichnis auch bekannt ist, wird auch die Datei von dem Befehl sh gefunden.
Die Ursache dafür ist folgende:
Versucht man ein scriptfile bzw. eine binary ohne Angabe des Pfades (entweder absolut oder relativ) zu starten, sucht das System unter den bekannten Systempfaden. Die bekannten Pfade für das System sind in dem Parameter PATH abgelegt.
Du könntest dir den Inhalt von PATH anzeigen lassen mit:
Wenn das scriptfile (in deinem konkreten Fall test.sh) nicht in einem der in PATH hinterlegten Pfade zu finden ist dann wird dieses auch nicht ausgeführt werden können. Genau aus diesem Grund muss man sich für eine der Möglichkeiten a.), b.) oder c.) entscheiden.
Es gäbe auch noch eine weitere Möglichkeit.
d.) Man erzeugt einen symbolischen link mit dem absoluten Pfad zu dem scriptfile. Der Link muss dann in einem der Systempfade angelegt werden. Somit wäre man auch in der Lage das scriptfile direkt ohne Umwege von jedem beliebigen Pfad des Systems aufzurufen.
Gruß
luddi