Quando utilizzo il seguente comando
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
lerrore è
bash setenv command is not found
Quando trovo il percorso di setenv con quale comando, ho trovato il seguente percorso
(/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)
Risposta
setenv
appartiene a (t)csh
, non a bash
che è la shell predefinita in CentOS. Utilizza
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
invece.
Risposta
Pari meglio perché più pulito, usa la notazione del prefisso (senza set
) sul comando che vuoi invocare:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Ora il java
processo che invoca sarà in grado di raccogliere le variabili di ambiente temporanee CLASSPATH, ANOTHER_VAR
e ATHIRD_VAR
.
Se hai utilizzato export
, anche le variabili verranno impostate globalmente (?), almeno nellambiente dello script. E i valori delle variabili che già esistenti verrebbero sovrascritti dai nuovi valori.
Vantaggi della notazione del prefisso:
- i valori precedenti di una variabile dovrebbero rimanere invariati, cioè nel caso in cui i vecchi valori siano necessario in seguito, quindi non ci sarebbe bisogno di salvare i vecchi valori delle variabili già esistenti per ripristinarli dopo linvocazione
- non cè bisogno di
unset
le tue variabili temporanee per scopi di pulizia dopo linvocazione