Der Befehl bash setenv wurde nicht gefunden.

Wenn ich den folgenden Befehl verwende

 setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH 

Fehler ist

 bash setenv command is not found 

Wenn ich den Pfad von setenv mit welchem Befehl finde, dann habe ich folgenden Pfad gefunden

 (/usr/kerberos/sbin:/usr/kerberos/bin:/home/ec2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/root/bin) 

Antwort

setenv gehört zu (t)csh, nicht zu bash, der Standard-Shell in CentOS. Verwenden Sie stattdessen

export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH" 

.

Antwort

Gerade Besser, weil sauberer, verwenden Sie die Präfixnotation (ohne set) für den Befehl, den Sie aufrufen möchten:

CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -... 

Jetzt kann der von Ihnen aufgerufene java -Prozess Ihre temporären Umgebungsvariablen CLASSPATH, ANOTHER_VAR und ATHIRD_VAR.

Wenn Sie export verwendet haben, werden die Variablen auch global (?) festgelegt, zumindest in der Skriptumgebung. Und Werte von Variablen, die Bereits vorhandene Werte werden durch die neuen Werte überschrieben.

Vorteile der Präfixnotation:

  • vorherige Werte einer Variablen sollten unverändert bleiben, dh in dem Fall, dass die alten Werte vorhanden sind Wird später benötigt, müssen die alten Werte der bereits vorhandenen Variablen nicht mehr gespeichert werden, um sie nach dem Aufruf wiederherzustellen.
  • unset Ihre temporären Variablen zu Bereinigungszwecken nach dem Aufruf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.