So legen Sie Umgebungsvariablen fest, indem Sie ein Tcsh-Skript aufrufen, das ein anderes Csh-Skript als Quelle verwendet

So legen Sie Umgebungsvariablen fest, indem Sie ein Tcsh-Skript aufrufen, das ein anderes Csh-Skript als Quelle verwendet

Ich kann die Umgebungsvariablen nicht mithilfe einer .cshanderen Datei festlegen .tcsh, die diese Datei als Quelle verwendet:

  • Dadurch werden die Umgebungsvariablen nicht festgelegt:
    $PERC_PATH/bin/runperc.csh ...<some arguments>
    
  • Während dies die Umgebungsvariablen festlegt:
    source $PERC_PATH/bin/runperc.csh ..<some arguments>
    


Beide sind ausführbar, Shebangs sind ausführbar /usr/bin/cshund runperc.cshdie Quellen perc_setup.cshdarin:

source $PERC_PATH/perc_setup.csh
  • perc_setup.cshenthält setenvund einige andere Befehle:
    setenv MGC_RVEDB_DIR {$PERC_PATH}/setup:{$HOME}
    


Wie lege ich die Umgebungsvariablen im Terminal fest, ohne source den Skriptpfad explizit angeben zu müssen?

Antwort1

Umgebungsvariablen können niemals von einer externen ausführbaren Datei „nach oben“ in die Shell übertragen werden. Wenn sie von einem CSH-Skript gesetzt werden müssen, dannmüssen sourcedieses Skript – verbergen Sie die „Quelle“ hinter einem Alias, wenn Sie möchten.

alias perc 'source $PERC_PATH/bin/runperc.csh'

Es gibt einige Alternativen – z. B. die Ausgabe der Umgebungsvariablen des Skripts auf stdout, damit sie vom übergeordneten Element ausgewertet werden können –, diese wären jedoch noch ausführlicher und würden weiterhin erfordern, dass Sie den Code direkt in der übergeordneten Shell ausführen.

verwandte Informationen