Der Befehl bash setenv wurde nicht gefunden

10

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)
Rui F Ribeiro
quelle

Antworten:

15

setenvgehört zu (t)csh, nicht zu bashwelcher ist die Standard-Shell in CentOS. Benutzen

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

stattdessen.

Janne Pikkarainen
quelle
3

Noch 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 ist der javaProzess , der Sie Invoke wird in der Lage sein , Ihre temporäre Umgebungsvariable (n) zu sammeln CLASSPATH, ANOTHER_VARund ATHIRD_VAR.

Wenn Sie verwendet haben export, werden die Variablen auch global (?) Festgelegt, zumindest in der Skriptumgebung. Und Werte von Variablen, die bereits vorhanden waren, würden durch die neuen Werte überschrieben.

Vorteile der Präfixnotation:

  • vorherige Werte einer Variablen sollten unverändert bleiben, dh wenn die alten Werte später benötigt werden, müssen die alten Werte der bereits vorhandenen Variablen nicht gespeichert werden, um sie nach dem Aufruf wiederherzustellen
  • keine Notwendigkeit, unsetIhre temporären Variablen für die Bereinigung Zwecke nach dem Aufruf
user160163
quelle