我有包装脚本通过ssh远程转移到另一个服务器并运行另一个shell脚本,并提供参数作为输入参数
sshwrapper.sh "executequery.ksh SYNC N \\\"\\\" \\\"\\\" \"\\\"dt='2017-02-10'\\\"\""
执行上述操作时,executequery.ksh在远程服务器上接收如下参数(按预期工作)
SYNC "" "" "dt='2017-02-10'"
然而,当我浏览Informatica时,它隐含地运行如下。
sh -c "command"
现在,在它取代上述命令的命令中,它失败了。那是
sh -c "sshwrapper.sh "executequery.ksh SYNC N \\\"\\\" \\\"\\\" \"\\\"dt='2017-02-10'\\\"\"""
你能帮忙逃避双引号,但仍应设法提供输入参数
SYNC "" "" "dt='2017-02-10'"
答案 0 :(得分:0)
你将你的工作命令包含在一层引号中...问题是你的引号不再匹配......你为什么要把命令放在双引号中?这将有助于我理解信息在哪里运行以及你如何设置命令,即如果命令是一个变量我希望它是$$命令然后我会问你运行sh -c $$会发生什么命令?
也可以尝试
sshwrapper.sh executequery.ksh SYNC N“”“”“”dt ='2017-02-10'“”