Ändern zsh den $ PATH-Variable in einem Skript, das bezogen werden soll,

StackOverflow https://stackoverflow.com/questions/1208831

  •  05-07-2019
  •  | 
  •  

Frage

Ich habe ein Skript zsh geerbt, die für einige Simulationen eine Reihe von Umgebungsvariablen einrichtet. Sie will die $ PATH-Variable bearbeiten, so dass einige Perl-Skripte gefunden werden kann:

typeset -U path
path=( ${SIMENV_BIN} $path )

Allerdings, wenn ich das Skript Quelle (source setup.source) das $ PATH-Variable bleibt unberührt. Wenn ich diese Zeilen an der Eingabeaufforderung Copypaste, sie tun update $ path. Wenn ich ‚Echos im Skript bestreuen und beziehe sie wieder, der typeset Befehl scheint das $ PATH-Variable zu löschen.

Würde jemand erklären, mir etwas dagegen, was los ist, und wie kann ich es beheben?

War es hilfreich?

Lösung

In der Standardeinstellung der typeset Befehl eine neue Variable mit dem angegebenen Namen erstellt, die auf die aktuelle Funktion lokal ist, so dass Änderungen an diesen Variablen, wenn die Funktion zurückkehrt verloren. Fügen Sie die -g Option:

typeset -gU path

Dies verhindert, dass die Variable lokalisierende.

Andere Tipps

Ich glaube, Sie könnten verwenden müssen .zshenv da es auf allen Beschwörungen der Schale stammt.

http://zsh.sunsite.dk/Contrib/startup/std/zshenv

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top