Ich öffne ein Terminal und navigiere zu meinem Projektordner (zB :) cd /proj/tickecting_app
. Danach führe ich diesen Befehl aus : rvm use ruby 1.9.x@gemset
.
Ich möchte, dass dieser Befehl jedes Mal ausgeführt wird, wenn ich das Terminal öffne.
Gibt es eine Möglichkeit, dies automatisch auszuführen? Um genauer zu sein, navigiere ich in separaten Registerkarten zu verschiedenen Projekten.
Zum Beispiel:
- Erste Registerkarte
cd /proj/tickecting_app
und ausführenrvm use ruby 1.9.x@gemset
. - Zweite Registerkarte
cd /proj/rss_feed_app
und ausführenrvm use ruby 2.1.x@gemset
.
Ich möchte je nach Projekt unterschiedliche Befehle ausführen. Ist das möglich?
Ruby
Antworten:
Wenn Sie RVM verwenden, müssen Sie lediglich eine Datei
.rvmrc
mit dem folgenden Inhalt in Ihr Projektverzeichnis einfügen:Für Ihr zweites Projekt ist es dasselbe, ändern Sie einfach den
rvm
Aufruf.quelle
.rvmrc
ist veraltet. Verwenden Sie.ruby-gemset
und.ruby-version
stattdessen..rvmrc
verwende, wechsle ich nicht automatisch zum Gemset des Projekts. Habe das heute gerade herausgefunden. : /Aliase können für Sie von Nutzen sein. Sie können
alias
für jedes bestimmte Verzeichnis und den Befehl, den Sie ausführen müssen, erstellen . Für die beiden Beispiele, die Sie gegeben haben, wäre es also:Das nächste Mal müssen Sie also nur das geben
alias
(auch nicht gebencd
), dhticketapp
undfeedapp
im obigen Fall.Um Ihre Aliase dauerhaft zu machen, einfach:
und geben Sie diese Alias-Befehle so wie sie sind in der
.bashrc
Datei.quelle
So etwas sollte für ein POSIX-System funktionieren - obwohl ich denke, dass nur
bash
der \ backslash vor dem! Bang so erforderlich ist.bash
scheint auch den Verlauf auf eine Weise zu aktualisieren, die nicht funktioniertfc
- was portabel ist - aber funktionierthistory
. In anderen Shells sollte dashistory 1
Bit austauschbar seinfc -l -1
,bash
aber es ist ein Befehl dahinter, denke ich. Es war ziemlich frustrierend.Jedes Mal, wenn die Eingabeaufforderung gezeichnet wird, wird die Variable
$last_hist
als Verlaufsnummer für den letzten Befehl definiert. Dies geschieht im Match-Feld bei einer Parametersubstitution, die immer gleich nichts ist, sodass sie nicht in der Eingabeaufforderung angezeigt wird.Die
fc
Überprüfung stellt nur sicher, dass die letzte Verlaufsnummer tatsächlich erhöht wurde - wie in, Sie haben nicht einfach die Eingabetaste gedrückt oder was auch immer. Es wird auch überprüft, ob der letzte Befehl a warcd
. Wenn beide zutreffen, wird versucht,.
eine Datei im aktuellen Verzeichnis mit dem Namen zu erstellen.dircmd
. Wenn es existiert, läuft es. Wenn nicht, na ja.quelle