El comando bash setenv no se encuentra

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *