1#!/bin/sh 2############################################################################# 3# bash script buildpkb.sh --- builds textana and siggen pkb files 4# from textana and siggen lingware source files 5# 6# Copyright (C) 2009 SVOX AG. All rights reserved. 7############################################################################# 8 9#tools 10TOOLS_DIR=. 11 12#textana sources 13TA_SRC_DIR=../textana 14 15#siggen sources 16SG_SRC_DIR=../siggen 17 18#resulting pkb 19DEST_PKB_DIR=../pkb 20 21#temporary files 22TMP_DIR=. 23 24#### check parameter count 25 26if [ -n "$4" -o -z "$2" ]; then 27 echo "usage: $0 <langid> <countryid> <voice>"; 28 echo " e.g: $0 en GB kh0"; 29 exit; 30fi 31 32#### check if language supported 33 34if [ $1 = "en" ]; then 35 if [ $2 = "GB" ]; then 36 echo 37 elif [ $2 = "US" ]; then 38 echo 39 else 40 echo; 41 echo [ERROR] invalid country id for language \"$1\"; exit; 42 fi 43elif [ $1 = "de" ]; then 44 if [ $2 = "DE" ]; then 45 echo 46 else 47 echo; 48 echo [ERROR] invalid country id for language \"$1\"; exit; 49 fi 50elif [ $1 = "es" ]; then 51 if [ $2 = "ES" ]; then 52 echo 53 else 54 echo; 55 echo [ERROR] invalid country id for language \"$1\"; exit; 56 fi 57elif [ $1 = "it" ]; then 58 if [ $2 = "IT" ]; then 59 echo 60 else 61 echo; 62 echo [ERROR] invalid country id for language \"$1\"; exit; 63 fi 64elif [ $1 = "fr" ]; then 65 if [ $2 = "FR" ]; then 66 echo 67 else 68 echo; 69 echo [ERROR] invalid country id for language \"$1\"; exit; 70 fi 71else 72 echo; 73 echo [ERROR] invalid language id; exit; 74fi 75 76LANG=$1-$2 77VOICE=$3 78 79########################################### 80## 81## SET LANGUAGE-DEPENDENT PARAMS 82## 83########################################### 84 85if [ $LANG = "en-GB" ]; then 86 WPHO_RANGE="1" 87 SPHO_RANGE="1 2 3 4" 88 if [ "$VOICE" = "kh0" ]; then 89 SPHO_VOICE_RANGE="5" 90 else 91 echo [ERROR] \<voice\> is needed; 92 exit; 93 fi 94elif [ $LANG = "en-US" ]; then 95 WPHO_RANGE="1 2" 96 SPHO_RANGE="1" 97 if [ "$VOICE" = "mh5" ]; then 98 SPHO_VOICE_RANGE="2 3 4 5" 99 elif [ "$VOICE" = "kr0" ]; then 100 SPHO_VOICE_RANGE="2 3 4" 101 elif [ "$VOICE" = "lh0" ]; then 102 SPHO_VOICE_RANGE="2 3 4 5" 103 else 104 echo [ERROR] \<voice\> is needed; 105 exit; 106 fi 107elif [ $LANG = "de-DE" ]; then 108 WPHO_RANGE="1 2" 109 SPHO_RANGE="1" 110 if [ "$VOICE" = "gl0" ]; then 111 SPHO_VOICE_RANGE="2" 112 else 113 echo [ERROR] \<voice\> is needed; 114 exit; 115 fi 116elif [ $LANG = "es-ES" ]; then 117 WPHO_RANGE="1" 118 SPHO_RANGE="1 2 3 4" 119 if [ "$VOICE" = "zl0" ]; then 120 SPHO_VOICE_RANGE="5" 121 else 122 echo [ERROR] \<voice\> is needed; 123 exit; 124 fi 125elif [ $LANG = "it-IT" ]; then 126 WPHO_RANGE="1" 127 SPHO_RANGE="1" 128 if [ "$VOICE" = "cm0" ]; then 129 SPHO_VOICE_RANGE="2" 130 else 131 echo [ERROR] \<voice\> is needed; 132 exit; 133 fi 134elif [ $LANG = "fr-FR" ]; then 135 WPHO_RANGE="1" 136 SPHO_RANGE="1 2 3 4 5 6 7 8" 137 if [ "$VOICE" = "nk0" ]; then 138 SPHO_VOICE_RANGE="9" 139 else 140 echo [ERROR] \<voice\> is needed; 141 exit; 142 fi 143fi 144TA_SRC_DIR_LANG=${TA_SRC_DIR}/${LANG}/ 145SG_SRC_DIR_LANG=${SG_SRC_DIR}/${LANG}/ 146 147DEST_PKB_DIR_LANG=${DEST_PKB_DIR}/${LANG}/ 148 149## language-independent values 150LFZ_RANGE="1 2 3 4 5" 151MGC_RANGE="1 2 3 4 5" 152 153########################################### 154## 155## DEFINE FILE NAMES 156## 157########################################### 158 159##### TABLES / LEXICON ################### 160 161GRAPHS_FN=${LANG}_graphs.utf 162PHONES_FN=${LANG}_phones.utf 163POS_FN=${LANG}_pos.utf 164 165LEXPOS_FN=${LANG}_lexpos.utf 166 167GRAPHS_PKB_FN=${LANG}_ktab_graphs.pkb 168PHONES_PKB_FN=${LANG}_ktab_phones.pkb 169POS_PKB_FN=${LANG}_ktab_pos.pkb 170 171LEXPOS_PKB_FN=${LANG}_klex.pkb 172 173DBG_PKB_FN=${LANG}_kdbg.pkb 174 175##### AUTOMATA ######################## 176 177# phonetic input alphabet parser 178PARSE_XSAMPA=parse-xsampa 179 180PARSE_XSAMPA_SYM_FN=${PARSE_XSAMPA}_symtab.utf 181PARSE_XSAMPA_AUT_FN=${PARSE_XSAMPA}_aut.utf 182 183PARSE_XSAMPA_AUT_PKB_FN=kfst_${PARSE_XSAMPA}.pkb 184 185# phonetic input alphabet to internal phonemes mapper 186MAP_XSAMPA=map-xsampa 187 188MAP_XSAMPA_SYM_FN=${LANG}_${MAP_XSAMPA}_symtab.utf 189MAP_XSAMPA_AUT_FN=${LANG}_${MAP_XSAMPA}_aut.utf 190 191MAP_XSAMPA_AUT_PKB_FN=${LANG}_kfst_${MAP_XSAMPA}.pkb 192 193for i in $WPHO_RANGE; do 194 eval AUT_WORD${i}_FN=${LANG}_aut_wpho${i}.utf 195 eval AUT_PKB_WORD${i}_FN=${LANG}_kfst_wpho${i}.pkb 196done 197 198for i in ${SPHO_RANGE}; do 199 eval AUT_SENT${i}_FN=${LANG}_aut_spho${i}.utf 200 eval AUT_PKB_SENT${i}_FN=${LANG}_kfst_spho${i}.pkb 201done 202 203# voice dependent FSTs 204for i in ${SPHO_VOICE_RANGE}; do 205 eval AUT_SENT${i}_FN=${LANG}_${VOICE}_aut_spho${i}.utf 206 eval AUT_PKB_SENT${i}_FN=${LANG}_${VOICE}_kfst_spho${i}.pkb 207done 208 209PHONES_SYM_FN=${LANG}_phones_symtab.utf 210 211##### PREPROC ########################### 212 213TPP_NET_FN=${LANG}_tpp_net.utf 214TPP_NET_PKB_FN=${LANG}_kpr.pkb 215 216##### DECISION TREES #################### 217 218#textana DT 219DT_POSP_FN=${LANG}_kdt_posp.utf 220DT_POSD_FN=${LANG}_kdt_posd.utf 221DT_G2P_FN=${LANG}_kdt_g2p.utf 222DT_PHR_FN=${LANG}_kdt_phr.utf 223DT_ACC_FN=${LANG}_kdt_acc.utf 224 225#textana configuration ini files 226CFG_POSP_FN=${LANG}_kdt_posp.dtfmt 227CFG_POSD_FN=${LANG}_kdt_posd.dtfmt 228CFG_G2P_FN=${LANG}_kdt_g2p.dtfmt 229CFG_PHR_FN=${LANG}_kdt_phr.dtfmt 230CFG_ACC_FN=${LANG}_kdt_acc.dtfmt 231 232DT_PKB_POSP_FN=${LANG}_kdt_posp.pkb 233DT_PKB_POSD_FN=${LANG}_kdt_posd.pkb 234DT_PKB_G2P_FN=${LANG}_kdt_g2p.pkb 235DT_PKB_PHR_FN=${LANG}_kdt_phr.pkb 236DT_PKB_ACC_FN=${LANG}_kdt_acc.pkb 237 238#siggen DT 239DT_DUR_FN=${LANG}_${VOICE}_kdt_dur.utf 240DT_PKB_DUR_FN=${LANG}_${VOICE}_kdt_dur.pkb 241 242for i in $LFZ_RANGE; do 243 eval DT_LFZ${i}_FN=${LANG}_${VOICE}_kdt_lfz${i}.utf 244 eval DT_PKB_LFZ${i}_FN=${LANG}_${VOICE}_kdt_lfz${i}.pkb 245done 246for i in $MGC_RANGE; do 247 eval DT_MGC${i}_FN=${LANG}_${VOICE}_kdt_mgc${i}.utf 248 eval DT_PKB_MGC${i}_FN=${LANG}_${VOICE}_kdt_mgc${i}.pkb 249done 250 251#siggen configuration ini file 252CFG_SG_FN=kdt_pam.dtfmt 253 254##### PDFS ############################## 255 256PDF_DUR_FN=${LANG}_${VOICE}_kpdf_dur.utf 257PDF_LFZ_FN=${LANG}_${VOICE}_kpdf_lfz.utf 258PDF_MGC_FN=${LANG}_${VOICE}_kpdf_mgc.utf 259PDF_PHS_FN=${LANG}_${VOICE}_kpdf_phs.utf 260 261PDF_PKB_DUR_FN=${LANG}_${VOICE}_kpdf_dur.pkb 262PDF_PKB_LFZ_FN=${LANG}_${VOICE}_kpdf_lfz.pkb 263PDF_PKB_MGC_FN=${LANG}_${VOICE}_kpdf_mgc.pkb 264PDF_PKB_PHS_FN=${LANG}_${VOICE}_kpdf_phs.pkb 265 266########################################### 267## 268## DEFINE FULL FILE PATHS 269## 270########################################### 271 272##### TABLES / LEXICA ################## 273 274SRC_GRAPHS=`cygpath -w $TA_SRC_DIR_LANG/$GRAPHS_FN` 275DEST_PKB_GRAPHS=`cygpath -w $DEST_PKB_DIR_LANG/$GRAPHS_PKB_FN` 276 277SRC_PHONES=`cygpath -w $TA_SRC_DIR_LANG/$PHONES_FN` 278DEST_PKB_PHONES=`cygpath -w $DEST_PKB_DIR_LANG/$PHONES_PKB_FN` 279 280SRC_POS=`cygpath -w $TA_SRC_DIR_LANG/$POS_FN` 281DEST_PKB_POS=`cygpath -w $DEST_PKB_DIR_LANG/$POS_PKB_FN` 282 283SRC_LEX=`cygpath -w $TA_SRC_DIR_LANG/$LEXPOS_FN` 284DEST_PKB_LEX=`cygpath -w $DEST_PKB_DIR_LANG/$LEXPOS_PKB_FN` 285 286DEST_PKB_DBG=`cygpath -w $DEST_PKB_DIR_LANG/$DBG_PKB_FN` 287 288##### AUTOMATA ######################## 289 290SRC_PARSE_XSAMPA_AUT=`cygpath -w $TA_SRC_DIR/$PARSE_XSAMPA_AUT_FN` 291SRC_PARSE_XSAMPA_SYM=`cygpath -w $TA_SRC_DIR/$PARSE_XSAMPA_SYM_FN` 292 293DEST_PARSE_XSAMPA_AUT_PKB=`cygpath -w $DEST_PKB_DIR/$PARSE_XSAMPA_AUT_PKB_FN` 294 295SRC_MAP_XSAMPA_AUT=`cygpath -w $TA_SRC_DIR_LANG/$MAP_XSAMPA_AUT_FN` 296SRC_MAP_XSAMPA_SYM=`cygpath -w $TA_SRC_DIR_LANG/$MAP_XSAMPA_SYM_FN` 297 298DEST_MAP_XSAMPA_AUT_PKB=`cygpath -w $DEST_PKB_DIR_LANG/$MAP_XSAMPA_AUT_PKB_FN` 299 300 301for i in $WPHO_RANGE; do 302 eval SRC_AUT_WORD${i}='"`'cygpath -w $TA_SRC_DIR_LANG/\$AUT_WORD${i}_FN'`"' 303 eval DEST_AUT_PKB_WORD${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$AUT_PKB_WORD${i}_FN'`"' 304done 305 306for i in $SPHO_RANGE; do 307 eval SRC_AUT_SENT${i}='"`'cygpath -w $TA_SRC_DIR_LANG/\$AUT_SENT${i}_FN'`"' 308 eval DEST_AUT_PKB_SENT${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$AUT_PKB_SENT${i}_FN'`"' 309done 310 311#voice dependent FSTs 312for i in $SPHO_VOICE_RANGE; do 313 eval SRC_AUT_SENT${i}='"`'cygpath -w $TA_SRC_DIR_LANG/\$AUT_SENT${i}_FN'`"' 314 eval DEST_AUT_PKB_SENT${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$AUT_PKB_SENT${i}_FN'`"' 315done 316 317TMP_PHONES_SYM=`cygpath -w $TMP_DIR/$PHONES_SYM_FN` 318 319##### PREPROC ########################### 320 321SRC_TPP_NET=`cygpath -w $TA_SRC_DIR_LANG/$TPP_NET_FN` 322DEST_TPP_NET_PKB=`cygpath -w $DEST_PKB_DIR_LANG/$TPP_NET_PKB_FN` 323 324##### DECISION TREES #################### 325 326#textana DT 327SRC_DT_POSP=`cygpath -w $TA_SRC_DIR_LANG/$DT_POSP_FN` 328SRC_DT_POSD=`cygpath -w $TA_SRC_DIR_LANG/$DT_POSD_FN` 329SRC_DT_G2P=`cygpath -w $TA_SRC_DIR_LANG/$DT_G2P_FN` 330SRC_DT_PHR=`cygpath -w $TA_SRC_DIR_LANG/$DT_PHR_FN` 331SRC_DT_ACC=`cygpath -w $TA_SRC_DIR_LANG/$DT_ACC_FN` 332 333#textana configuration ini files 334CFG_DT_POSP=`cygpath -w $TA_SRC_DIR_LANG/$CFG_POSP_FN` 335CFG_DT_POSD=`cygpath -w $TA_SRC_DIR_LANG/$CFG_POSD_FN` 336CFG_DT_G2P=`cygpath -w $TA_SRC_DIR_LANG/$CFG_G2P_FN` 337CFG_DT_PHR=`cygpath -w $TA_SRC_DIR_LANG/$CFG_PHR_FN` 338CFG_DT_ACC=`cygpath -w $TA_SRC_DIR_LANG/$CFG_ACC_FN` 339 340#siggen 341SRC_DT_DUR=`cygpath -w $SG_SRC_DIR_LANG/$DT_DUR_FN` 342 343for i in $LFZ_RANGE; do 344 eval SRC_DT_LFZ${i}='"`'cygpath -w $SG_SRC_DIR_LANG/\$DT_LFZ${i}_FN'`"' 345done 346 347for i in $MGC_RANGE; do 348 eval SRC_DT_MGC${i}='"`'cygpath -w $SG_SRC_DIR_LANG/\$DT_MGC${i}_FN'`"' 349done 350 351#siggen configuration ini file 352CFG_DT_SG=`cygpath -w $SG_SRC_DIR/$CFG_SG_FN` 353 354#textana 355DEST_DT_PKB_POSP=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_POSP_FN` 356DEST_DT_PKB_POSD=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_POSD_FN` 357DEST_DT_PKB_G2P=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_G2P_FN` 358DEST_DT_PKB_PHR=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_PHR_FN` 359DEST_DT_PKB_ACC=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_ACC_FN` 360 361 362#siggen 363DEST_DT_PKB_DUR=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_DUR_FN` 364 365for i in $LFZ_RANGE; do 366 eval DEST_DT_PKB_LFZ${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$DT_PKB_LFZ${i}_FN'`"' 367done 368 369for i in $MGC_RANGE; do 370 eval DEST_DT_PKB_MGC${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$DT_PKB_MGC${i}_FN'`"' 371done 372 373 374##### PDFS ############################## 375 376SRC_PDF_DUR=`cygpath -w $SG_SRC_DIR_LANG/$PDF_DUR_FN` 377SRC_PDF_LFZ=`cygpath -w $SG_SRC_DIR_LANG/$PDF_LFZ_FN` 378SRC_PDF_MGC=`cygpath -w $SG_SRC_DIR_LANG/$PDF_MGC_FN` 379SRC_PDF_PHS=`cygpath -w $SG_SRC_DIR_LANG/$PDF_PHS_FN` 380 381DEST_PDF_PKB_DUR=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_DUR_FN` 382DEST_PDF_PKB_LFZ=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_LFZ_FN` 383DEST_PDF_PKB_MGC=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_MGC_FN` 384DEST_PDF_PKB_PHS=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_PHS_FN` 385 386########################################### 387## 388## Compilation into pkb 389## 390########################################### 391 392SYMSHIFT=${TOOLS_DIR}/symshift.pl 393GRAPHS_TO_PKB=${TOOLS_DIR}/picoloadgraphs.exe 394PHONES_TO_PKB=${TOOLS_DIR}/picoloadphones.lua 395DBG_TO_PKB=${TOOLS_DIR}/picoloaddbg.lua 396POS_TO_PKB=${TOOLS_DIR}/picoloadpos.exe 397LEX_TO_PKB=${TOOLS_DIR}/picoloadlex 398AUT_TO_PKB=${TOOLS_DIR}/picoloadfst.exe 399TPP_TO_PKB=${TOOLS_DIR}/picoloadpreproc.exe 400DT_TO_PKB=${TOOLS_DIR}/dt2pkb.exe 401PDF_TO_PKB=${TOOLS_DIR}/pdf2pkb.exe 402 403##### build intermediate files ############################ 404 405echo ${SYMSHIFT} -phones $SRC_PHONES -POS $SRC_POS > $TMP_PHONES_SYM 406${SYMSHIFT} -phones $SRC_PHONES -POS $SRC_POS > $TMP_PHONES_SYM 407 408##### TABLES ############################ 409 410echo ${GRAPHS_TO_PKB} $SRC_GRAPHS ${DEST_PKB_GRAPHS} 411${GRAPHS_TO_PKB} $SRC_GRAPHS ${DEST_PKB_GRAPHS} 412 413echo ${PHONES_TO_PKB} $SRC_PHONES ${DEST_PKB_PHONES} 414${PHONES_TO_PKB} $SRC_PHONES ${DEST_PKB_PHONES} 415 416echo ${POS_TO_PKB} $SRC_POS ${DEST_PKB_POS} 417${POS_TO_PKB} $SRC_POS ${DEST_PKB_POS} 418 419echo ${DBG_TO_PKB} $SRC_PHONES ${DEST_PKB_DBG} 420${DBG_TO_PKB} $SRC_PHONES ${DEST_PKB_DBG} 421 422##### LEXICON ############################ 423 424echo ${LEX_TO_PKB} $SRC_PHONES $SRC_POS $SRC_LEX ${DEST_PKB_LEX} 425${LEX_TO_PKB} $SRC_PHONES $SRC_POS $SRC_LEX ${DEST_PKB_LEX} 426 427##### AUTOMATA ######################## 428 429echo ${AUT_TO_PKB} ${SRC_PARSE_XSAMPA_AUT} ${SRC_PARSE_XSAMPA_SYM} $DEST_PARSE_XSAMPA_AUT_PKB 430${AUT_TO_PKB} ${SRC_PARSE_XSAMPA_AUT} ${SRC_PARSE_XSAMPA_SYM} $DEST_PARSE_XSAMPA_AUT_PKB 431 432echo ${AUT_TO_PKB} ${SRC_MAP_XSAMPA_AUT} ${SRC_MAP_XSAMPA_SYM} $DEST_MAP_XSAMPA_AUT_PKB 433${AUT_TO_PKB} ${SRC_MAP_XSAMPA_AUT} ${SRC_MAP_XSAMPA_SYM} $DEST_MAP_XSAMPA_AUT_PKB 434 435for i in $WPHO_RANGE; do 436 eval echo ${AUT_TO_PKB} \${SRC_AUT_WORD${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_WORD${i}} 437 eval ${AUT_TO_PKB} \${SRC_AUT_WORD${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_WORD${i}} 438done 439 440for i in $SPHO_RANGE; do 441 eval echo ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}} 442 eval ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}} 443done 444 445# voice dependent FSTs 446for i in $SPHO_VOICE_RANGE; do 447 eval echo ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}} 448 eval ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}} 449done 450 451##### PREPROC ########################### 452 453echo ${TPP_TO_PKB} $SRC_GRAPHS $SRC_TPP_NET $DEST_TPP_NET_PKB 454${TPP_TO_PKB} $SRC_GRAPHS $SRC_TPP_NET $DEST_TPP_NET_PKB 455 456##### DECISION TREES #################### 457 458#textana 459#config file is added as the argument of the dt2pkb tool 460echo ${DT_TO_PKB} $CFG_DT_POSP $SRC_DT_POSP $DEST_DT_PKB_POSP 461${DT_TO_PKB} $CFG_DT_POSP $SRC_DT_POSP $DEST_DT_PKB_POSP 462 463echo ${DT_TO_PKB} $CFG_DT_POSD $SRC_DT_POSD $DEST_DT_PKB_POSD 464${DT_TO_PKB} $CFG_DT_POSD $SRC_DT_POSD $DEST_DT_PKB_POSD 465 466echo ${DT_TO_PKB} $CFG_DT_G2P $SRC_DT_G2P $DEST_DT_PKB_G2P 467${DT_TO_PKB} $CFG_DT_G2P $SRC_DT_G2P $DEST_DT_PKB_G2P 468 469echo ${DT_TO_PKB} $CFG_DT_PHR $SRC_DT_PHR $DEST_DT_PKB_PHR 470${DT_TO_PKB} $CFG_DT_PHR $SRC_DT_PHR $DEST_DT_PKB_PHR 471 472echo ${DT_TO_PKB} $CFG_DT_ACC $SRC_DT_ACC $DEST_DT_PKB_ACC 473${DT_TO_PKB} $CFG_DT_ACC $SRC_DT_ACC $DEST_DT_PKB_ACC 474 475#siggen 476echo ${DT_TO_PKB} $CFG_DT_SG $SRC_DT_DUR $DEST_DT_PKB_DUR 477${DT_TO_PKB} $CFG_DT_SG $SRC_DT_DUR $DEST_DT_PKB_DUR 478 479for i in $LFZ_RANGE; do 480 eval echo ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_LFZ${i}} \${DEST_DT_PKB_LFZ${i}} 481 eval ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_LFZ${i}} \${DEST_DT_PKB_LFZ${i}} 482done 483 484for i in $MGC_RANGE; do 485 eval echo ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_MGC${i}} \${DEST_DT_PKB_MGC${i}} 486 eval ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_MGC${i}} \${DEST_DT_PKB_MGC${i}} 487done 488 489##### PDFS ############################## 490 491echo ${PDF_TO_PKB} $SRC_PDF_DUR $DEST_PDF_PKB_DUR 492${PDF_TO_PKB} $SRC_PDF_DUR $DEST_PDF_PKB_DUR 493 494echo ${PDF_TO_PKB} $SRC_PDF_LFZ $DEST_PDF_PKB_LFZ 495${PDF_TO_PKB} $SRC_PDF_LFZ $DEST_PDF_PKB_LFZ 496 497echo ${PDF_TO_PKB} $SRC_PDF_MGC $DEST_PDF_PKB_MGC 498${PDF_TO_PKB} $SRC_PDF_MGC $DEST_PDF_PKB_MGC 499 500echo ${PDF_TO_PKB} $SRC_PDF_PHS $DEST_PDF_PKB_PHS 501${PDF_TO_PKB} $SRC_PDF_PHS $DEST_PDF_PKB_PHS 502 503