Când folosesc următoarea comandă
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
eroare este
bash setenv command is not found
Când găsesc calea setenv prin care comandă, atunci am găsit calea următoare
(/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)
Răspuns
setenv
aparține (t)csh
, nu la bash
care este shell-ul implicit în CentOS. Folosiți
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
în schimb.
Răspundeți
Chiar mai bine pentru că mai curat, utilizați notația de prefix (fără set
) pe comanda pe care doriți să o invocați:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Acum, procesul java
pe care îl invocați va putea să vă adune variabilele de mediu temporare CLASSPATH, ANOTHER_VAR
și ATHIRD_VAR
.
Dacă ați folosit export
, atunci variabilele vor fi setate la nivel global (?), cel puțin în mediul scriptului. Și, valorile variabilelor care existent deja ar fi suprascris de noile valori.
Avantajele notării prefixului:
- valorile anterioare ale unei variabile ar trebui să rămână neschimbate, adică în cazul în care valorile vechi sunt necesare mai târziu, atunci nu va mai fi nevoie să salvați vechile valori ale variabilelor care existau deja pentru a le restabili după invocare
- nu este nevoie să
unset
variabilele dvs. temporare în scopuri de curățare după invocare