Il comando bash setenv non è stato trovato


10

Quando sto usando il seguente comando

         setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH

l'errore è

        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)

Risposte:


15

setenvappartiene a (t)csh, non a bashquale è la shell predefinita in CentOS. Uso

export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"

anziché.


3

Ancora meglio perché più pulito, usa la notazione con 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 javaprocesso che invocherai sarà in grado di raccogliere le variabili di ambiente temporanee CLASSPATH, ANOTHER_VARe ATHIRD_VAR.

Se hai usato export, allora anche le variabili saranno impostate globalmente (?), Almeno nell'ambiente dello script. E i valori delle variabili già esistenti verrebbero sovrascritti dai nuovi valori.

Vantaggi della notazione con prefisso:

  • i valori precedenti di una variabile dovrebbero rimanere invariati, ovvero nel caso in cui i valori precedenti siano necessari in un secondo momento, non sarebbe necessario salvare i vecchi valori delle variabili già esistenti al fine di ripristinarli dopo l'invocazione
  • non sono necessarie unsetvariabili temporanee per scopi di pulizia dopo l'invocazione
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.