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