如何将变量值分配给另一个文件中的变量?
How to assign a variable value to a variable from another file?
我有一个 sql 文件 abc.sql 有一个 SELECT SQL 语句
SELECT COL FROM $D_SCHEMA.TABLE;
我有一个shell脚本script.ksh
D_SCHEMA=DEV
EXEC_SQL=`cat abc.sql`
#echo $EXEC_SQL
#Function db_sql, which exports data to a csv file
db_sql "EXPORT TO /app/dev FILE ${EXEC_SQL}"
现在我无法将值分配给 $D_SCHEMA 时内容分配给 shell 脚本中的一个变量。
目前该变量在 shell 脚本中被视为文字。
echo $EXEC_SQL
SELECT COL FROM $D_SCHEMA.TABLE
预期输出
echo $EXEC_SQL
SELECT COL FROM DEV.TABLE
我该如何解决这个问题?
#!/bin/ksh
# one example using eval
D_SCHEMA=DEV
EXEC_SQL='SELECT COL FROM $D_SCHEMA.TABLE'
echo "$EXEC_SQL"
# output: SELECT COL FROM $D_SCHEMA.TABLE
eval new_var=\""$EXEC_SQL"\"
echo "$new_var"
# output: SELECT COL FROM DEV.TABLE
我有一个 sql 文件 abc.sql 有一个 SELECT SQL 语句
SELECT COL FROM $D_SCHEMA.TABLE;
我有一个shell脚本script.ksh
D_SCHEMA=DEV
EXEC_SQL=`cat abc.sql`
#echo $EXEC_SQL
#Function db_sql, which exports data to a csv file
db_sql "EXPORT TO /app/dev FILE ${EXEC_SQL}"
现在我无法将值分配给 $D_SCHEMA 时内容分配给 shell 脚本中的一个变量。
目前该变量在 shell 脚本中被视为文字。
echo $EXEC_SQL
SELECT COL FROM $D_SCHEMA.TABLE
预期输出
echo $EXEC_SQL
SELECT COL FROM DEV.TABLE
我该如何解决这个问题?
#!/bin/ksh
# one example using eval
D_SCHEMA=DEV
EXEC_SQL='SELECT COL FROM $D_SCHEMA.TABLE'
echo "$EXEC_SQL"
# output: SELECT COL FROM $D_SCHEMA.TABLE
eval new_var=\""$EXEC_SQL"\"
echo "$new_var"
# output: SELECT COL FROM DEV.TABLE