Экспорт переменных из одного скрипта в другой - PullRequest
2 голосов
/ 11 ноября 2009

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

   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 Ответ

6 голосов
/ 11 ноября 2009

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

a=123
b=abc

export a b

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

#!/bin/sh

. 1.sh

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