команда 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.