O comando bash setenv não foi encontrado

10

Quando estou usando o seguinte comando

         setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH

erro é

        bash setenv command is not found

Quando encontro o caminho de setenv por qual comando, encontrei o seguinte caminho

 (/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)
Rui F Ribeiro
fonte

Respostas:

15

setenvpertence a (t)csh, ao bashqual não é o shell padrão no CentOS. Usar

export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"

em vez de.

Janne Pikkarainen
fonte
3

Ainda melhor porque mais limpo, use a notação de prefixo (sem set) no comando que você deseja chamar:

CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...

Agora, o javaprocesso que você chamar poderá reunir suas variáveis ​​de ambiente temporárias CLASSPATH, ANOTHER_VARe ATHIRD_VAR.

Se você usou export, as variáveis ​​também serão definidas globalmente (?), Pelo menos no ambiente do script. E, os valores das variáveis ​​que já existiam seriam substituídos pelos novos valores.

Vantagens da notação de prefixo:

  • os valores anteriores de uma variável devem permanecer inalterados, ou seja, caso os valores antigos sejam necessários posteriormente, não será necessário salvar os valores antigos das variáveis ​​que já existiam para restaurá-los após a chamada.
  • não há necessidade de unsetsuas variáveis ​​temporárias para fins de limpeza após a chamada
user160163
fonte