2017-01-11 3 views
0

У меня есть файл .KSH, в котором у меня есть две переменные Var1, Var2, каков способ присвоить значения X, Y в разных файлах var1, var2 (var1 = х, переменная2 = у)Каков способ вызова переменных в одном файле в другой файл в оболочке UNIX

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 сценарий

+0

Думаю, вам нужно * "dot" * it in ... '. otherFile.ksh' –

+0

Каков формат второго файла? можете ли вы отправить пример? –

+0

if [$ STATUS! = 0] then echo "ERROR - Не удалось выполнить скрипт BTEQ для abcd' date' "| mailx -s "Ошибка в скрипте xxxxx.ksh ... !!!" $ LIST1 (первый комплект писем) return $ STATUS fi echo "Выполнен процесс загрузки для abcd' date' "| mailx -s «Завершенный процесс загрузки для abcd' date' »-a $ TGT_DIR/$ FILE_NM $ LIST2 (второй набор сообщений электронной почты) , поэтому хотелось бы создать файл с этим набором писем и позвонить в мой xxxxx.ksh file Каков лучший способ сделать это – user7351498

ответ

1

Мы используем общий файл в наших сценариях bash для сервера TTU (где мы выполняем наши bteq и tpt), хотя это не относится к TTU, а скорее к любому сценарию оболочки Linux.

Для общих переменных мы имеем один файл variables.ksh, который принимает формат:

export LIST1="[email protected] [email protected] [email protected]" 
export LIST2="[email protected] [email protected]" 
export ETLLogon="someusername" 
export WorkDatabase="Commonlyusedb" 
export othervariables="other values" 

Затем в каждом сценарии оболочки, который должен использовать это, вы просто принести его в с .:

#!/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 

В этом сценарии нет необходимости ЭКСПОРТ переменных, но мы часто переходим к подзаголовкам в наших сценариях, поэтому это удобно.

+0

Строки, а не встроенные массивы, для списков? –

+0

Ну ... Технически с Teradata (ttu - это etl-пакет) Обычно я храню списки адресов электронной почты в базе данных, когда они не жестко закодированы в любом скрипте, а затем вытаскивают их через BTEQ, когда это необходимо. – JNevill

Смежные вопросы