将一个文件中的变量调用到UNIX shell中的另一个文件的方法是什么

时间:2017-01-11 19:14:14

标签: linux shell unix ksh

我有一个.KSH文件,其中我有两个变量Var1,Var2是什么方式将不同文件中的X,Y值分配给Var1,Var2(Var1 = x,Var2 = y)

if      [ $STATUS != 0 ]
then
    echo "ERROR - Failed to execute the BTEQ Script for abcd `date` " | mailx -s "Failed in Script xxxxx.ksh...!!!" $LIST1(first set of emails )
    return $STATUS
fi
echo "Completed load process for abcd  `date`" | mailx -s "Completed load process for abcd  `date`" -a $TGT_DIR/$FILE_NM $LIST2(second set of emails)

将来自不同文件(.txt或.ksh)的两套电子邮件调用到我的xxxxx.ksh脚本的最佳方法是什么

1 个答案:

答案 0 :(得分:1)

我们在TTU服务器的bash脚本(我们执行bteq和tpt)中使用了一个公共文件,虽然这不是特定于TTU,而是任何linux shell脚本。

对于常见变量,我们只有一个文件variables.ksh,其格式为:

export LIST1="name@domain.com name2@domain.com name3@domain.com"
export LIST2="name4@domain.com name5@domain.com"
export ETLLogon="someusername"
export WorkDatabase="Commonlyusedb"
export othervariables="other values" 

然后在需要使用这些内容的每个shell脚本中,您只需使用.

#!/bin/ksh

#import common variables
. /path/to/variables.ksh

#and now you can use these:
if      [ $STATUS != 0 ]
then
    echo "ERROR - Failed to execute the BTEQ Script for abcd `date` " | mailx -s "Failed in Script xxxxx.ksh...!!!" $LIST1
    return $STATUS
fi
echo "Completed load process for abcd  `date`" | mailx -s "Completed load process for abcd  `date`" -a $TGT_DIR/$FILE_NM $LIST2

在这种情况下,没有必要导出变量,但我们经常在脚本中使用子shell,因此它很方便。