La commande bash setenv est introuvable

10

Lorsque j'utilise la commande suivante

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

l'erreur est

        bash setenv command is not found

Quand je trouve le chemin de setenv par quelle commande, alors j'ai trouvé le chemin suivant

 (/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)
Rui F Ribeiro
la source

Réponses:

15

setenvappartient à (t)csh, pas à bashqui est le shell par défaut dans CentOS. Utilisation

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

au lieu.

Janne Pikkarainen
la source
3

Encore mieux car plus propre, utilisez la notation de préfixe (sans set) sur la commande que vous souhaitez appeler:

CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...

Maintenant, le javaprocessus que vous invoquez pourra rassembler vos variables d'environnement temporaires CLASSPATH, ANOTHER_VARet ATHIRD_VAR.

Si vous l'avez utilisé export, les variables seront également définies globalement (?), Au moins dans l'environnement du script. Et, les valeurs des variables qui existaient déjà seraient écrasées par les nouvelles valeurs.

Avantages de la notation des préfixes:

  • les valeurs précédentes d'une variable devraient rester inchangées, c'est-à-dire que dans le cas où les anciennes valeurs seraient nécessaires plus tard, il ne serait pas nécessaire de sauvegarder les anciennes valeurs des variables qui existaient déjà afin de les restaurer après l'invocation
  • pas besoin de unsetvos variables temporaires à des fins de nettoyage après l'invocation
user160163
la source