Представление заданий HPC внутри задания HPC

Переменная доступна в основном скрипте, поскольку вы использовали . (встроенная точка, также известная как источник в некоторых оболочках). . ./vars выполняет vars в контексте вызывающего сценария.

Ваша проблема в том, что вы используете printenv для проверки, но printenv печатает только переменные среды , а не переменные оболочки . Переменные среды управляются операционной системой и видны дочерним процессам. Переменные оболочки являются особенностью языка программирования оболочки и управляются только оболочкой.

Все переменные среды автоматически становятся переменными оболочки¹, но переменные оболочки являются только переменными оболочки, если явно не экспортированы , что также делает их переменными среды.

Чтобы проверить, какие переменные определены, используйте встроенную функцию set . Это будет список MYVAR .

Чтобы экспортировать переменную, используйте встроенную команду export . Сделайте это, если хотите, чтобы переменная была видна другим программам, запускаемым из оболочки.

export MYVAR

¹ Если их имя не соответствует требованиям для переменной оболочки.

0
22.08.2018, 02:27
1 ответ

Ответ «это зависит». Кластер HPC можно настроить так, чтобы исполнительный узел мог отправлять задания, но это не является обязательным требованием. Похоже, если задать вопрос локальному администратору HPC, вы получите исчерпывающий ответ. Или вы можете попробовать быстрый скрипт, который ничего не делает, кроме как отправить второе задание и посмотреть, работает ли оно.

0
28.04.2021, 23:43

Теги

Похожие вопросы