Cuando estoy usando el siguiente comando
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
El error es
bash setenv command is not found
Cuando encuentro la ruta de setenv por qué comando, encontré la siguiente ruta
(/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)
Respuesta
setenv
pertenece a (t)csh
, no a bash
que es el shell predeterminado en CentOS. Utilice
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
en su lugar.
Responder
Incluso mejor porque es más limpio, use la notación de prefijo (sin set
) en el comando que desea invocar:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Ahora, el proceso java
que invoca podrá recopilar sus variables de entorno temporales CLASSPATH, ANOTHER_VAR
y ATHIRD_VAR
.
Si usó export
, las variables también se establecerán globalmente (?), al menos en el entorno del script. Y los valores de las variables que que ya existían serían sobrescritos por los nuevos valores.
Ventajas de la notación de prefijo:
- los valores anteriores de una variable deben permanecer sin cambios, es decir, en el caso de que los valores necesario más adelante, entonces no habría necesidad de guardar los valores antiguos de las variables que ya existían para restaurarlos después de la invocación
- no es necesario
unset
sus variables temporales para fines de limpieza después de la invocación