Linux 在UNIX shell中,如何将一个文件中的变量调用到另一个文件
我有一个.KSH文件,其中有两个变量Var1,Var2如何将不同文件中的X,Y值分配给Var1,Var2(Var1=X,Var2=Y)Linux 在UNIX shell中,如何将一个文件中的变量调用到另一个文件,linux,shell,unix,ksh,Linux,Shell,Unix,Ksh,我有一个.KSH文件,其中有两个变量Var1,Var2如何将不同文件中的X,Y值分配给Var1,Var2(Var1=X,Var2=Y) 将这两组来自不同文件(或.txt或.ksh)的电子邮件调用到我的xxxxx.ksh脚本的最佳方式是什么?我们在TTU服务器的bash脚本(执行bteq和tpt的地方)中使用一个公共文件,尽管这不是特定于TTU的,而是任何linux shell脚本 对于常见变量,我们有一个文件variables.ksh,其格式如下: export LIST1="name@doma
将这两组来自不同文件(或.txt或.ksh)的电子邮件调用到我的xxxxx.ksh脚本的最佳方式是什么?我们在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,因此非常方便。我认为您需要在脚本中“点”它<代码>。otherFile.ksh第二个文件的格式是什么?您可以发布一个示例吗?如果[$STATUS!=0],则echo“错误-无法执行abcd
日期的BTEQ脚本”| mailx-s“在脚本xxxxx.ksh中失败…!!!$LIST1(第一组电子邮件)返回$STATUS fi echo“已完成abcd日期的加载过程”|mailx-s“已完成abcd日期的加载过程”
“-a$TGT_DIR/$FILE_NM$LIST2(第二组电子邮件),因此希望使用这组电子邮件创建一个文件,并调用我的xxxxx.ksh文件,更好的方法是什么请您编辑问题并修复标记?我尝试了一下,但未能理解if的相关性[$STATUS!=0]然后回显
及以后。另外,如果如果
有一个bug——如果状态=''
,那么这将只运行如果[!=0]
,这是无效的语法。如果引用扩展,如[“$STATUS”!=0]
,那么你就没有这个问题了。请看,这会自动捕获这种错误。列表是字符串,而不是本机数组?嗯……从技术上讲,对于Teradata(ttu是etl套件),我通常会将电子邮件列表存储在数据库中,当它们不是以任何脚本硬编码时,然后在需要时通过BTEQ将它们取出。
#!/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