我使用Camel和spring xml。当我尝试通过camel的exec组件调用find时,有一些问题可以使争论正确。
我想拨打' find / somepath / -mtime + 10'
我的骆驼路线有这个元素。
<to uri="exec:find?args=/somepath/ -mtime +30 -delete" />
在日志中我得到了
2017-11-06 20:12:00,172 INFO [org.apache.camel.component.exec.ExecProducer] (DefaultQuartzScheduler-noderoutes_Worker-10) The command ExecCommand [args=[/tmp/integrator/msglog/, -mtime, **30**, -print], executable=find, timeout=9223372036854775807, outFile=null, workingDir=null, useStderrOnEmptyStdout=true] had exit value 0
我们可以看到+符号被删除,并且由于缺少+,查找命令将失败。 我尝试了不同的方法来逃避或编码+没有成功。任何人都知道如何保护+号?
答案 0 :(得分:1)
查看RAW()
<to uri="exec:find?args=RAW(/somepath/ -mtime +30 -delete)" />
答案 1 :(得分:0)
在我尝试了两次转义+并在RAW中包装所有args或只是部分args后,我引入了另一个层。我把调用发现在一个脚本中,只是将路径和天数作为exec的参数。
<button>
我猜在命令行被放到操作系统之前,只有很多层编码/解码正在进行。