如何将具有空格的变量从shell传输到oracle sqlplus

如何将具有空格的变量从shell传输到oracle sqlplus,sql,oracle,shell,variables,sqlplus,Sql,Oracle,Shell,Variables,Sqlplus,我正在使用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

我正在使用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} "$@"    
`
$@将作为四个变量解释给param1、param2、param、3

@{sqlFilePath} param1 param2 param 3
“$@”将作为一个变量解释为“param1 param2 param 3”

@{sqlFilePath} "param1 param2 param 3"
但是我希望这些参数可以这样解释

@{sqlFilePath} param1 param2 "param 3"
有什么办法解决我的问题吗?

怎么样:

run_sql.sh param1 param2 '"param 3"'
应在脚本中展开以:

@{sqlFilePath} param1 param2 "param 3"

致DCookie:非常感谢!它在我的脚本上运行得很好。我应该可以找到双引号和单引号的详细信息。@user966610:在这里查看bash手册页:
@{sqlFilePath} param1 param2 "param 3"