команда bash setenv не найдена


10

Когда я использую следующую команду

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

ошибка

        bash setenv command is not found

Когда я нахожу путь setenv с помощью какой команды, то я нашел следующий путь

 (/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)

Ответы:


15

setenvпринадлежит (t)csh, а не bashявляется оболочкой по умолчанию в CentOS. использование

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

вместо.


3

Еще лучше, потому что более чисто, используйте префиксную нотацию (без set) в команде, которую вы хотите вызвать:

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

Теперь javaвызываемый вами процесс сможет собрать ваши временные переменные окружения CLASSPATH, ANOTHER_VARи ATHIRD_VAR.

Если вы используете export, то переменные также будут установлены глобально (?), По крайней мере, в среде сценария. И значения переменных, которые уже существовали, будут перезаписаны новыми значениями.

Преимущества префиксной нотации:

  • предыдущие значения переменной должны оставаться неизменными, т. е. в случае, если позже понадобятся старые значения, тогда не будет необходимости сохранять старые значения переменных, которые уже существовали, чтобы восстановить их после вызова
  • нет необходимости в unsetваших временных переменных для очистки после вызова
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.