Предположим, у меня есть foo.sh
, который вызывает bar.sh
, используя параллель:
# foo.sh
#! /bin/bash
parallel -N 3 bar.sh ::: $(seq 10)
Мой bar.sh
работает следующим образом: если установлена переменная среды (например, DEBUG=1), она выводит много отладочной информации.
В идеале я хочу просто выполнить свой foo.sh
следующим образом:
$ DEBUG=1 foo.sh
Обычно foo.sh
имеет значение $DEBUG
, а bar.sh
его видит. Но теперь, когда я использую параллель GNU для вызова bar.sh
, которая является локальной программой, моя bar.sh
больше не имеет установленного значения DEBUG
.
Я читал, что --env
работает только в том случае, если у меня установлено удаленное выполнение -S
, и, судя по моим попыткам, это не работает для меня.
Есть ли способ заставить мой параллельный bar.sh
просто «унаследовать» настройки среды моего foo.sh
? Я действительно не хочу указывать каждую переменную среды и их значения при параллельном вызове bar.sh
.
ТИА
#!/bin/bash
, а не$!/bin/bash
. - person chepner   schedule 05.08.2016