Ausführen von bash-Skript von einem in ein anderes Verzeichnis?
Ich habe 3 Verzeichnisse:
/A/B/C und 1 bash-Skript in C-Verzeichnis.
Wie kann ich die Ausführung dieses bash-Skript von Ein in im C-Verzeichnis.
- Könnten Sie uns ein Beispiel geben von dem, was Sie Fragen? Wenn Sie sagen "führen Sie dieses bash-script von Einer" meinst du, dass Sie umziehen wollen die bash-script unter
A
? Und dann wollen Sie es ausführen, auf Dateien inC
? - mbratch, ja, ich will das es läuft auf Dateien in C, aber führen Sie das Skript aus(das Skript ist in C). Wenn ich in Ein ich nicht die Dateien(in C), mit denen Sie die cript funktioniert. (mv: cannot stat `*.cpp': Keine solche Datei oder das Verzeichnis .. dh)
- Dann müssen Sie den relativen Pfad der Dateien, zu. So etwas wie
B/C/myscript.sh B/C/*.cpp
. Aber ohne ein Beispiel von dem, was Sie versuchen zu tun, es ist schwer zu sagen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verstehe ich aus Ihren Kommentaren, dass Sie wollen, dass Ihr Skript, um seine aktuelle Arbeitsverzeichnis in
A/B/C
wenn es ausgeführt wird. Ok, so gehen Sie in das Verzeichnis A:ab und führen dann
script.sh
von dort:Was dieser tut, ist start einer subshell, in dem Sie zuerst in das Verzeichnis wechseln, Sie wollen, dass Ihr Skript ausführen, und führt dann das Skript aus. Setzen Sie es als eine subshell wird verhindert, dass es aus der Unordnung auf dem aktuellen Verzeichnis der interaktiven Sitzung.
Wenn es noch lange ausführen von Skripts, die Sie behalten möchten, in den hintergrund Sie können auch einfach hinzufügen
&
am Ende wie jeder andere Befehl.Vorausgesetzt
/A/B/C/script.sh
ist das Skript, wenn Sie in/A
, dann würden Sie geben./B/C/script.sh
oderbash B/C/script.sh
oder einen vollständigen Pfad/A/B/C/script.sh
. Wenn das, was du meinst, ist, dass Sie wollen, dass das Skript immer zu arbeiten, dann werden Sie wollen, um Sie IhremPATH
variable.Gehen, dann führen Sie Ihr Skript, indem Sie den Pfad zu:
Könnte man auch hinzufügen
C
zu IhremPATH
variable, so dass es von überall ausführbar(d.h.
somescript.sh
, ohne den Pfad)Wenn Sie wollen, um den Zugriff auf das Verzeichnis das Skript gespeichert ist, innerhalb des Skripts, die Sie verwenden können, diese one-liner:
oder einfach
dirname
. Entnommen aus diese thread. Es gibt viele weitere Vorschläge gibt.Der einfache Weg, um Ihr script auszuführen, innerhalb
C
ist einfach in diesen Ordner.Wann immer ich will, um sicherzustellen, dass ein Skript auf Dateien im lokalen Ordner, ich werfe diese in der Nähe der Spitze des Skripts:
Es klingt wie das ist genau das, was Sie suchen!