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