2

我有几个脚本,它们的第一部分看起来相同。这部分的功能是识别脚本在哪台机器上运行并相应地设置几个变量。它看起来像这样:

   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"了,但没有用。

谁能给我一个提示我应该使用哪种方法来解决问题?

我正在考虑让部件识别环境,将属性写入文件,然后可以将其传递给其他脚本。但似乎必须有更直接的方法。

// 迈克

4

1 回答 1

6

初始化脚本 (1.sh)

a=123
b=abc

export a b

应用程序脚本

#!/bin/sh

. 1.sh

echo \$a: $a
echo \$b: $b
于 2009-11-11T10:02:27.533 回答