Gibt es eine Cursor-basierte Schnittstelle zum Ändern von Umgebungsvariablen?

348
Catskul

Ich muss oft einen kleinen Teil einer langen Umgebungsvariablen (insbesondere Pfade) ändern, und zwar entweder durch Einfügen des Dings in einen Editor und Ändern dort oder durch Entsprechung.

Gibt es ein kleines Hilfsprogramm, um Umgebungsvariablen mit einem Cursor in der Befehlszeile zu bearbeiten?

Ich vermute, ich könnte immer einen aufpeitschen, aber ich hoffe, es gibt schon etwas, das mir einfach nicht bewusst ist.

0

2 Antworten auf die Frage

1
jlliagre

Ich verwende (ksh-Syntax, sollte aber auch mit bash funktionieren):

function viPath { typeset _path=$ typeset _separator=$ eval echo "\$$_path" | tr $_separator '\n' >~/.path vi ~/.path eval _path=$(cat ~/.path | tr '\n' $_separator) eval $=$(eval echo $_path | sed 's/.$//') \rm ~/.path } 
Das sieht vielversprechend aus, aber ich habe es nicht gut verstanden. Ich muss daran basteln, wenn ich eine Chance habe. Catskul vor 13 Jahren 0
Was funktioniert nicht jlliagre vor 13 Jahren 0
Nicht sicher, aber der Pfad ist beim Speichern / Beenden leer: ": wq". Ich muss noch versuchen zu debuggen. Catskul vor 13 Jahren 0
Ich denke, Sie verwenden es als Shell-Skript. Es muss eine Funktion sein, damit die Variablenänderung bestehen bleibt. jlliagre vor 13 Jahren 0
0
OldWolf

Ich kann mir keine vorstellen, mit der Sie interaktiv direkt in der Befehlszeile bearbeitet werden können. Es gibt jedoch Möglichkeiten, es komfortabler zu gestalten, als Sie beschreiben. Wenn es sich um eine kurzfristige Änderung handelt und Sie nur etwas zum Pfad hinzufügen müssen, können Sie den aktuellen Wert selbst referenzieren. Zum Beispiel in Bash:

PATH=$PATH:/ADDITIONAL/PATH 

Wenn Sie die Rangfolge ändern möchten, können Sie sie mit voranstellen

PATH=/ADDITIONAL/PATH:$PATH 

Sie können sich auch einen Cut and Paste speichern, indem Sie den Wert in eine temporäre Datei einfügen

echo $PATH > tempfile.txt 

Wenn Sie komplexere oder dauerhaftere Änderungen vornehmen müssen, können Sie Ihre Umgebungsvariablen in Ihrer entsprechenden RC- und / oder Profildatei referenzieren und bearbeiten. Wenn sie noch nicht vorhanden sind, können Sie die Echo-Methode verwenden, um sie in einen bearbeitbaren Status zu bringen (stellen Sie sicher, dass Sie >> zum Anhängen anstelle des Überschreibens verwenden). In vi können Sie auch verwenden

:r!echo $PATH 

In Emacs wäre es so

C-u M-! echo $PATH 

So fügen Sie die Ausgabe in die Datei ein, an der Sie gerade arbeiten.

Dies sind alles Dinge, die ich im Moment mache. Ich versuche, temporäre Änderungen an Variablen vorzunehmen, und ich suche etwas mit weniger Schritten, um meinen Arbeitsfluss zu verbessern. Catskul vor 13 Jahren 0