Kun käytän seuraavaa komentoa
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
virhe on
bash setenv command is not found
Kun löydän komennon setenv polun, löysin seuraavan polun
(/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)
vastaus
setenv
kuuluu ryhmään (t)csh
, ei bash
, joka on CentOS: n oletuskuori. Käytä sen sijaan
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
.
Vastaa
Parillinen parempi, koska puhtaampi, käytä etuliitemerkintöjä (ilman set
) komennossa, jonka haluat kutsua:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Nyt käynnistämäsi java
-prosessi voi kerätä väliaikaiset ympäristömuuttujat CLASSPATH, ANOTHER_VAR
ja ATHIRD_VAR
.
Jos käytit export
, muuttujat asetetaan myös globaalisti (?), ainakin komentosarjan ympäristössä. Ja muuttujien arvot, jotka jo olemassaolevat uudet arvot korvataan.
Etuliitemerkinnän edut:
- muuttujan aiempien arvojen tulisi pysyä muuttumattomina, ts. jos vanhoja arvoja muutetaan tarvitaan myöhemmin, silloin ei ole tarvetta tallentaa jo olemassa olevien muuttujien vanhoja arvoja niiden palauttamiseksi kutsun jälkeen.
- ei tarvitse
unset
väliaikaiset muuttujat siivoustarkoituksiin kutsun jälkeen