comando bash setenv non trovato

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *