Ich habe eine ~ / .cshrc-Datei, die eine andere Datei beschafft, die eine zusätzliche Datei als Quelle enthalten soll, aber nicht ist

1041
beowulfey

Ich habe vor kurzem eine Administrationsrolle für mein Labor geerbt, und ich bin noch ziemlich neu darin ... also ist diese Frage hoffentlich sinnvoll. Unser System ist so eingerichtet, dass ein Server die Daten- / Benutzerverzeichnisse hostet, einer über die Software und Apps verfügt und drei Systeme als funktionierende Computer verwendet werden, auf denen diese anderen Server installiert sind. Wenn ein neuer Benutzer erstellt wird, wird eine ~ / .cshrc-Datei generiert, die eine übergeordnete .cshrc-Datei auf dem Softwareserver bereitstellt. Diese übergeordnete Datei enthält alle Pfadeinstellungen und Variablen usw., die erforderlich sind, um auf die verschiedenen Programme zuzugreifen, die wir auf dem bereitgestellten Softwareserver installieren. Es ist ein totales Durcheinander ... aber na ja.

Eines der Programme, die wir verwenden, muss vor dem Start eine andere Datei enthalten, um die Umgebung richtig einzustellen und die richtigen Verzeichnisse zu laden. Aus irgendeinem Grund geschieht diese Quellinstanz nicht mehr, wenn ein Terminalfenster geöffnet wird. Folgendes habe ich gefunden:

  • Ich versuche, das Programm von der Befehlszeile aus zu starten, und es erkennt den Befehl von der übergeordneten Datei .cshrc. Es wird versucht zu laden, aber es wird im Verzeichnis / usr / local auf dem Computer und nicht im Verzeichnis auf dem Softwareserver gesucht (ich glaube, dies ist das der Software Standardaktion).

  • Wenn ich im Terminal ~ / .cshrc ausführe, ändert sich nichts. Wenn ich jedoch die übergeordnete CSRC-Datei aus dem Terminal beziehe und dann das Programm versuche, es zu laden, öffnet es kein Problem.

  • Ich weiß, dass ~ / .cshrc die übergeordnete .cshrc-Datei ordnungsgemäß beschafft, weil ich ein Testecho in diese Datei eingefügt habe, und ich kann dieses Echo sehen, wenn ich ein Terminalfenster öffne. Es scheint, dass der Quellbefehl in der übergeordneten Quelldatei nicht ausgeführt wird.

Macht das Sinn? Gibt es zu viele Sourcing-Schichten oder etwas? Ich habe keine Ahnung, warum das so ist. Hier ist der Code in der übergeordneten CSRC-Datei, der nicht ordnungsgemäß abgeschlossen wird:

set hname = `hostname`  ############## #### #### ccp4i #### ############## switch ($hname) case phase15.XXX.edu: source /usr/local_programs/32-bit/ccp4/6.3.01/ccp4-6.3.0/bin/ccp4.setup-csh source /usr/local_programs/32-bit/ccp4/6.3.01/ccp4-6.3.0/setup-scripts/ccp4.setup-csh echo "ccp4i sourced" #(THIS SHOWS UP) breaksw default: echo "CCP4 env setting?" breaksw endsw ############## 

Der Wechsel ist darauf zurückzuführen, dass verschiedene Computer unterschiedliche Versionen der Software laden müssen. Danke im Voraus.

0

1 Antwort auf die Frage

0
beowulfey

Nur zu Aufnahmezwecken habe ich das Problem herausgefunden; im nachhinein offensichtlich. Die ~. / Cshrc-Datei der Benutzer enthielt einen separaten Quellbefehl, der nach dem Abrufen der übergeordneten Datei alles durcheinander brachte. Am Ende denke ich, dass dies eine Lektion ist, immer alles sorgfältig durchzulesen ...