将变量从一个shell脚本导出到另一个脚本
我有几个脚本,其中的第一部分看起来相同。这部分的功能是确定脚本在哪个机器上运行,并相应地设置一些变量。它看起来像这样:将变量从一个shell脚本导出到另一个脚本
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.sh)
a=123
b=abc
export a b
应用脚本
#!/bin/sh
. 1.sh
echo \$a: $a
echo \$b: $b
我正在使用“#!/ bin/sh”。但是你的回答让我得出这样的结论:“来源”可以用“'替代。如果bash没有被使用。大! – Mike 2009-11-11 11:13:37
酷!这在bash中也是有效的。我会改变我的答案来反映这一点。 – 2009-11-11 11:36:51
我不认为你需要导出这些变量,除非你希望它们出现在称为“子”的脚本环境中(例如你的例子中的第二个脚本)。 – 2009-11-11 14:44:44
壳牌您使用的? – 2009-11-11 10:03:43