команда 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ваших временных переменных для очистки после вызова
user160163
источник