3

我正在使用 shell 脚本来运行用 sql 脚本文件编写的 sql。在脚本文件中有一些绑定变量可以从 shell 运行时传递参数。

这是我的代码。

result=`sqlplus -s ${DB_USER_NAME}/${DB_USER_PWD}@${DB_SID}<<!
        SET HEADING ON
        SET UNDERLINE OFF
        SET COLSEP ','
        WHENEVER SQLERROR EXIT 255
        SET TRIM SPOOL ON
        SPOOL $outputPath

        @{sqlFilePath} $@


        #@${sqlFilePath} "$@"    
`

当我像这样运行外壳时:

run_sql.sh param1 param2 "param 3" 

$@ 将作为四个变量向 param1,param2,param,3 解释

@{sqlFilePath} param1 param2 param 3

"$@" 将被解释为 "param1 param2 param 3" 作为一个变量

@{sqlFilePath} "param1 param2 param 3"

但我希望参数会这样解释

@{sqlFilePath} param1 param2 "param 3"

有什么办法可以解决我的问题吗?

4

1 回答 1

3

怎么样:

run_sql.sh param1 param2 '"param 3"'

它应该在您的脚本中扩展为:

@{sqlFilePath} param1 param2 "param 3"
于 2013-01-23T02:08:21.710 回答