Подача переменных среды через bsub (платформа LSF)
Кажется, я не могу передать переменные среды в сценарии, переданные в планировщик кластера bsub
. Это прекрасно работает, когда я отправляю команды, которые напрямую используют эти переменные среды, но эти переменные среды нельзя использовать в последующих сценариях. Почему это так и как я могу это исправить?
Вот простой пример, где я пытался перейти x=1
на скрипт:
me@cluster:~[407]$ bsub -I -tty -env 'x=1' 'echo .$x.' Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35590315> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc0243>> .1. me@cluster:~[408]$ echo 'echo .$x.' > myechox me@cluster:~[409]$ more myechox echo .$x. me@cluster:~[410]$ chmod +x myechox me@cluster:~[411]$ bsub -I -tty -env 'x=1' myechox Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35590318> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc1279>> .. me@cluster:~[412]$ bsub -I -tty -env 'x=1' 'export x;myechox' Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35590340> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc1045>> ..
Обновление : это работает:
me@cluster:~[456]$ bsub -I -tty -env 'x=1' 'export x=$x;myechox' Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35609253> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc0975>> .1.
Между тем, я также узнал, что bsub
предпочитает использовать bsub < scriptfile
вместо bsub scriptfile
; По-видимому, это необходимо для того, чтобы включить синтаксический анализ встроенных параметров (используя #BSUB
), а также объясняет, почему переменные устанавливаются только локально (поскольку не требуется вызывать под-сценарий).
Тем не менее, теперь я тоже попробовал это, что, на удивление, не работает:
me@cluster:~[457]$ bsub -I -tty -env 'x=1' < myechox Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35609459> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc1140>> ..
Обновление 2 : сначала я попробовал export
ing x
, что дает тот же эффект, что и при использовании -env 'x=1'
:
me@cluster:~[458]$ export x=1 me@cluster:~[460]$ bsub -I -tty 'echo .$x.' Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35610151> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc1140>> .1. me@cluster:~[459]$ bsub -I -tty < myechox Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35609990> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc1140>> ..
Обновление 3 : это, опять же, работает, что я считаю ответом на мой вопрос:
me@cluster:~[571]$ (echo export x=$x && cat myechox) | bsub -I -tty Info: No jobname given, set to: Job_with_no_name Info: No output file given, set to: output_%J_%I.txt Info: No memory limit given, set to: 512MB Info: No runtime limit given, set to: 15min Job <35641024> is submitted to queue <normal>. <<Waiting for dispatch ...>> <<Starting on linuxbmc1045>> .1.
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
9
"Отсоединить" и "Reattach" Xterms через X сессий?
-
-
1
Windows дата репрезентация
-
9
grep все файлы .java в каталоге для конкретной строки
-
1
Является ли kill -STOP временной командой?
-
2
Изменить количество строк и столбцов в VT420?
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
2
Можно ли передать выходные данные одной команды двум другим командам?
-
3
Хватит cron отправлять мне письма