O comando bash setenv não foi encontrado

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *