Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将变量传递到字符串ksh中_Bash_Unix_Ksh - Fatal编程技术网

Bash 将变量传递到字符串ksh中

Bash 将变量传递到字符串ksh中,bash,unix,ksh,Bash,Unix,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="13

如何将全局变量传递到函数内的字符串中

我有以下代码在大部分情况下有效:

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;")
缺少以下内容:

$rqstID_PRCSS_TBL
应该是:

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

是shell变量中的合法字符。shell正在尝试查找名为
$rqstID\u PRCSS\u TBL
的变量,并获取一个空字符串。(这就是
\u PRCSS\u TBL
从输出中消失的原因。)

您需要告诉shell变量名的结尾:
schema.SEGN${rqstID}\u PRCSS\u TBL

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