2015-12-19 3 views
0

Я хочу добавить строку в переменную среды PATH команды qsub. Редактирование файла .sh не является вариантом, потому что это генерируется и выполняется внутри конвейера (я могу редактировать параметры команды qsub).Передать переменную окружения в задания qsub

Я бегу следующую команду: qsub

qsub -pe слотов 16 -S/бен/Баш -cwd -N "трубопровод" -jy -o /Главная/пользователь/вход/out.log /home/user/pipeline/runthis.sh

Мне нужно добавить следующую переменную PATH среды в оболочке выполняющиеся:

/home/user/jre1.8.0_66/bin

(это потому, что сценарий зависит от более поздней версии Java, чем на кластере).

Я попытался следующие:

qsub -pe слотов 16 -S/бен/Баш -cwd -N "трубопровод" -jy -o /home/user/log/out.log /home/user/pipeline/runthis.sh -v PATH =/дом/pa354/jre1.8.0_66/бен: $ PATH -V

Это не сработало, я добавил 'окр' к Файл bash выполняется (чтобы проверить переменные среды), мой необходимый путь не был добавлен.

ответ

1

Вы должны использовать -v в вашей команде qsub:

qsub -v JAVA_HOME ... 

Это будет проходить по переменной окружения из окружения вызывающего в породившей работу.

Обратите внимание, что аргумент -v до qsub должен быть до аргументов фактической команды, выполняемой на удаленных узлах. Кажется, вы пробовали его в конце всей командной строки, которая не сработает.

+0

Да, но как бы добавить строку к переменной PATH. Я пробовал следующие qsub -V, qsub -v PATH =/.../../bin $ PATH, qsub -v PATH =/../../bin $ PATH -V. Я запускаю скрипт bash, вывод «env» не показывает никаких добавлений к переменной PATH. – par

+0

@ParsaAkbari: см. Мое обновление, вам нужно немного изменить порядок элементов вашей командной строки. –