Quando estou usando o seguinte comando
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
o erro é
bash setenv command is not found
Quando encontro o caminho do setenv por meio desse comando, encontrei o caminho a seguir
(/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)
Resposta
setenv
pertence a (t)csh
, não para bash
que é o shell padrão no CentOS. Use
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
em vez disso.
Resposta
Uniforme melhor porque mais limpo, use a notação de prefixo (sem set
) no comando que deseja invocar:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Agora, o processo java
que você invocar será capaz de reunir suas variáveis de ambiente temporárias CLASSPATH, ANOTHER_VAR
e ATHIRD_VAR
.
Se você usou export
, então as variáveis também serão definidas globalmente (?), pelo menos no ambiente do script. E, os valores das variáveis que já existentes seriam substituídos pelos novos valores.
Vantagens da notação de prefixo:
- os valores anteriores de uma variável devem permanecer inalterados, ou seja, no caso dos valores antigos serem necessário posteriormente, não haveria necessidade de salvar os valores antigos das variáveis que já existiam para restaurá-los após a invocação
- não haveria necessidade de
unset
suas variáveis temporárias para fins de limpeza após a invocação