Экспорт переменных из одного скрипта в другой


У меня есть несколько сценариев, для которых первая часть выглядит одинаково. Функция этой части состоит в том, чтобы определить, на какой машине выполняется сценарий, и установить пару переменных соответственно. Это выглядит примерно так:

   ENV=`echo $LOGNAME | cut -c1-8`
if  [ $ENV = "vrt3400b" ]
then
   echo "Using TEST specific settings."
   NAME_PREFIX="tst"
   GROUP_NUMBER=`echo $USER | cut -c4-5`
   GROUP_NUMBER_SUFFIX=00`echo $USER | cut -c8-9`
   ...
elif [ $ENV = "vrp3400a" ]
then
   echo "Using PROD specific settings."
   NAME_PREFIX="prd"
   ...
Проблема заключается в том, что по мере роста числа сценариев накладные расходы на поддержание небольших изменений становятся очень трудоемкими. Я извлек вышеупомянутую часть и поместил ее в отдельный сценарий, который затем вызывается всеми другими сценариями. Но переменные, конечно, не пересылаются в другие сценарии. Пробовал export NAME_PREFIX="tst" также, но это не сработало. Может ли кто-нибудь подсказать мне, какой подход я должен использовать для решения этой проблемы?

Я думал о том, чтобы позволить части, идентифицирующей среду, записать свойства в файл, который затем можно будет передать другим скриптам. Но, похоже, должен быть и более прямой подход.

/ / Майк

1 2

1 ответ:

Сценарий инициализации (1.sh)

a=123
b=abc

export a b

Сценарий Приложения

#!/bin/sh

. 1.sh

echo \$a: $a
echo \$b: $b