So wechseln Sie das Verzeichnis mithilfe eines Skripts


10

Ich habe dieses Skript

#!/bin/bash
cd /home/user/somedir
pwd

Es funktioniert wie erwartet, aber ich möchte, dass dieses Skript mich nach / home / user / somedir transportiert, aber ich bleibe im selben Verzeichnis.

Wie schreibe ich ein Skript, das mich (im Gnome-Terminal) nach / home / user / somedir transportiert?


Antworten:


13

Sie müssen zu sourceIhrem Skript. Wenn nicht, wird es in einer separaten Subshell ausgeführt, wobei das Arbeitsverzeichnis der Subshell geändert wird, nicht jedoch der Shell, in der Sie es ausführen.

Um es zu beschaffen:

. myfile.sh

oder

source myfile.sh

Sie können mehr lesen hier


Ich wollte nur hinzufügen, dass ... UAdadapter, wenn Sie das Shelll-Skript wie sh myfile.sh oder ./myfile.sh ausführen, würde es wie von Danjil beschrieben ausgeführt. Jede der Optionen von Danjil sollte für Sie funktionieren.
itnet7

3

Verwenden Sie exec basham Ende

Ein Bash-Skript arbeitet in seiner aktuellen Umgebung oder in der seiner untergeordneten Umgebung, jedoch niemals in seiner übergeordneten Umgebung.

Diese Frage wird jedoch häufig gestellt, weil man nach der Ausführung eines Bash-Skripts aus einem anderen Verzeichnis an einer Bash-Eingabeaufforderung in einem bestimmten Verzeichnis belassen werden möchte.

Wenn dies der Fall ist, führen Sie einfach eine untergeordnete Bash-Instanz am Ende des Skripts aus:

#!/bin/bash
cd /home/user/somedir
exec bash
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.