La commande bash setenv est introuvable

Lorsque jutilise la commande suivante

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

lerreur est

 bash setenv command is not found 

Quand je trouve le chemin de setenv par quelle commande, alors jai 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) 

Réponse

setenv appartient à (t)csh, pas à bash qui est le shell par défaut dans CentOS. Utilisez plutôt

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

.

Answer

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

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

Désormais, le processus java que vous appelez pourra collecter vos variables denvironnement temporaires CLASSPATH, ANOTHER_VAR et ATHIRD_VAR.

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

Avantages de la notation de préfixe:

  • les valeurs précédentes dune variable devraient rester inchangées, cest-à-dire dans le cas où les anciennes valeurs seraient nécessaire plus tard, alors il ny aurait pas besoin de sauvegarder les anciennes valeurs des variables qui existaient déjà pour les restaurer après linvocation
  • pas besoin de unset vos variables temporaires à des fins de nettoyage après linvocation

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *