Mit bash_rc kann keine Datei in erhabenem Text geöffnet werden

Meine bash_profile-Funktion sieht so aus:

function st() { /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /Users/ishan/workspace/nltk_engine/index.py;}

Wenn ich jedoch im Terminal st, öffnet es nur ein erhabenes Textfenster, ohne die Datei zu öffnen. Ich habe die Zeile in das Terminal kopiert und es funktioniert. Es funktioniert nicht über bash_profile.

Welche Version von Sublime Text verwenden Sie? Ich habe es mit Version 2.0.2 versucht und es hat wie erwartet funktioniert: Ich konnte eine Python-Datei mit einer Funktion wie Ihrer öffnen, die aus .bash_profile. Was ist die Ausgabe von type st? Fügen Sie als Nebenbemerkung .bashrcstattdessen Funktionen hinzu, da Funktionen nicht in die Umgebung exportiert werden.

Antworten (2)

Die stFunktion, die beim Tippen arbeitet, stist eine alte, die Sie interaktiv in definiert haben Terminal. Wenn Sie eingeben:

type st

Sie werden sehen, dass diese Definition nicht die ist, die Sie in Ihre eingegeben haben .bash_profile.

Um die in Ihrer eingegebene Definition auszuführen .bash_profile, müssen Sie sie in Ihre eigentliche Shell laden:

. ~/.bash_profile

oder

source ~/.bash_profile

Und Sie können von nun an überprüfen, ob Ihre Definition Ihrer stFunktion korrekt ist mit:

type st
Ich habe es endlich zum Laufen gebracht. Der Fehler war, dass es in meiner .bashrc auch einen Alias ​​"st" gab. Dies verursachte das Problem. Ich habe es gefunden, indem ich den Befehl "type" ausgegeben habe. Danke :). Können Sie mir auch sagen, welche Dinge ich in mein bash_profile und welche Dinge in bashrc einfügen soll?
@ishanJain Kommentare sollten verwendet werden, um um Erläuterungen zu der gegebenen Antwort und ähnlichen Dingen zu bitten. Das Stellen von Folgefragen in Kommentaren funktioniert nicht so gut, es ist besser, in diesen Fällen eine neue Frage zu stellen . In Ihrem Fall könnte es auch hilfreich sein, alte Fragen hier, auf stackoverflow.com und auf unix.stackexchange.com zu durchsuchen, da dieses Thema höchstwahrscheinlich schon einmal aufgekommen ist.
→ Ishan: Gute Frage, aber bitte folgen Sie dem Kommentar von Patrix. Sie helfen allen ... und sich selbst: gezielter antworten.

Da Ihr Befehl ein statischer Befehl ist, könnten Sie es mit einem Alias ​​versuchen:

alias st="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /Users/ishan/workspace/nltk_engine/index.py"
Das wird nicht statisch sein. Ich habe es nur mit einem statischen Beispiel versucht.