comanda bash setenv nu este găsită

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *