2014-10-29 4 views
0

전역 변수를 함수 내부의 문자열에 전달하는 방법은 무엇입니까? 변수를 문자열 ksh로 넘김

내가 가지고있는 대부분의 작동 다음 코드를

td_query() { bteq << EOF |grep '^>' |sed -e "s/^>/;/g" 
$(cat $HOME/.tdlogon) 
    DATABASE $schemaName; 
    .set width 10000; 
     .set titledashes off; 
    $1 
.LOGOFF; 
.QUIT; 
.EXIT 
EOF 
} 

rqstID="1357" 

echo $(td_query "select '>'||'UPDATE schema.SEGN_$rqstID_PRCSS_TBL SET POPN_LVL_EXCLN ='||a.CODE_ID||' WHERE ' || b.SQL_FILE_NM ||' AND POPN_LVL_EXCLN IS NULL' 
     FROM SE_POPN_EXCLSN a 
     INNER JOIN SE_CODE_LIB b 
     ON 
     a.CODE_ID = b.CODE_ID;") 

하지만 결과가 돌아올 :

UPDATE schema.SEGN_ SET POPN_LVL_EXCLN = 1002 WHERE MR_IND = 'Y' 

이 누락 :

$rqstID_PRCSS_TBL 

가 있어야한다 :

UPDATE schema.SEGN_1357_PRCSS_TBL SET POPN_LVL_EXCLN = 1002 WHERE MR_IND = 'Y' 

답변

2

_은 쉘 변수의 유효한 문자입니다. 셸이 $rqstID_PRCSS_TBL이라는 이름으로 변수를 찾고 빈 문자열을 얻으려고합니다. (_PRCSS_TBL이 출력에서 ​​사라지고 이유입니다.) 당신은 변수 이름이 끝나는 쉘을 알려줄 필요가

: schema.SEGN_${rqstID}_PRCSS_TBL

관련 문제