Im Grunde möchte ich einen schnellen Befehlssatz erstellen, den ich in das Terminal eingeben und dann Folgendes ausführen lassen kann:
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Ich arbeite für ein Unternehmen, dessen Software an einem zentralen Ort untergebracht ist und Symlinks verwendet, um Probleme zu umgehen, die durch die Arbeit aus einem Subversion-Repo-Zweig (oder was auch immer) entstehen, da die Software zum Ausführen auf bestimmte Pfade angewiesen ist. Mein Dilemma besteht darin, dass ich regelmäßig (mehrmals täglich) zwischen verschiedenen Zweigen und dem Stamm hin- und herwechseln muss. Ich möchte also zumindest eine Art Skript erstellen, das ich im Terminal ausführen und ein eindeutiges Befehlsbeispiel eingeben kann:
./subchange trunk
oder
./subchange branch1
Es macht mir nichts aus, die oben genannten Dinge für jeden Ordner, in den ich wechseln muss, fest zu codieren oder für jeden Ordner eine eindeutige Kennung zu erstellen, um mir das Leben ein wenig zu erleichtern, aber ich bin mir nicht sicher, wie ich tatsächlich ein Skript erstelle, damit ich es als benutzerdefinierten Befehl verwenden kann, oder welche Art von Skript ich verwenden müsste, damit es unter Linux funktioniert. Daher wäre mir an dieser Stelle jeder Ratschlag/jede Hilfe willkommen.
Antwort1
Wenn ein Skript ausführbar ist und sein übergeordnetes Verzeichnis in Ihrem liegt $PATH
, können Sie es als Befehl verwenden. Sie können beispielsweise aus den von Ihnen genannten Befehlen ein Bash-Skript erstellen:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Anschließend können Sie es als Datei speichern subchange
und mit ausführbar machen chmod +x subchange
. Ich habe ein Verzeichnis mit Skripten auf meinem System (zum Beispiel /tech/scripts
), die ich zu meinem hinzufüge $PATH
. Oftmals $PATH
wird die Umgebungsvariable in einer ~/.profile
, ~/.bashrc
, /etc/bashrc
oder ähnlichen Datei festgelegt. Sie können Ihr Verzeichnis folgendermaßen hinzufügen:
export PATH=/tech/scripts:$PATH
Wenn Sie das zu einer Startdatei hinzugefügt haben, müssen Sie Ihre Shell neu starten oder sie als Quelle verwenden (z. B. source ~/.bashrc
). Jetzt können Sie subchange
auf der Befehlszeile verwenden und diese Befehle werden ausgeführt. Um dem Befehl ein Argument hinzuzufügen, können Sie den $1
Operator verwenden. In Bash steht dies für das erste Argument, wenn ich also tue, subchange trunk
wird $1
es trunk
. Sie können dies dann nach Bedarf in Ihr Skript einfügen:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink
Der #!
Anfang der Datei heißt asiebang(sie bewegt sich ... sie bewegt sich ...). Für ein Skript auf einem Unix-System teilt es dem System mit, über welche Binärdatei die folgenden Befehle ausgeführt werden sollen. In diesem Fall geben wir an, /bin/bash
weil wir diese Datei als Bash-Befehle ausführen möchten und die Bash-Binärdatei in ist /bin
. Dies könnte jedoch eine andere Sprache angeben und auf deren Binärdatei verweisen.