0
我有通过ssh远程数据库到另一个服务器和运行另一个外壳脚本提供的参数作为输入参数包装脚本的Linux - 逃生双引号
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'"
如果您需要连续三个以上的反斜杠,你可能做错了。我建议你需要编写一个脚本,将脚本复制到远程机器,然后执行脚本。 –
对不起,我不明白你的理解。当您手动调用时,命令运行良好,没有问题。只有在通过Informatica调用时才会失败,因为Informatica将该语句隐式重建为sh -c“command”。我只需要能够逃避双引号 – Kumar
只有在需要时才能退出报价是正确的。所以,''executequery.ksh SYNC N \“\”...“'是正确的。注意单个转义。然后,'executequery.ksh'必须正确对待它的参数,即使它们包含空格或引号**。 – linuxfan