bash setenv -komentoa ei löydy

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *