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)

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.