在Freeswitch中转义Lua参数

在Freeswitch中转义Lua参数,lua,escaping,freeswitch,Lua,Escaping,Freeswitch,在Freeswitch中,传递给lua脚本的参数以空格分隔(请参阅) 我已经计算出可以用单引号将参数括起来,然后忽略空格,但我无法计算出如何转义单引号 如何将带空格的参数传递给Lua 要重新创建问题,请执行以下操作: Lua脚本示例: argumentOne=argv[1]; argumentTwo=argv[2]; argumentThree=argv[3]; argumentFour=argv[4]; freeswitch.consoleLog("info", "*************

在Freeswitch中,传递给lua脚本的参数以空格分隔(请参阅)

我已经计算出可以用单引号将参数括起来,然后忽略空格,但我无法计算出如何转义单引号

如何将带空格的参数传递给Lua

要重新创建问题,请执行以下操作:

Lua脚本示例:

argumentOne=argv[1];
argumentTwo=argv[2];
argumentThree=argv[3];
argumentFour=argv[4];

freeswitch.consoleLog("info", "*******************\n");
freeswitch.consoleLog("info", argumentOne);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", argumentTwo);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", argumentThree);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", argumentFour);
freeswitch.consoleLog("info", "\n");
freeswitch.consoleLog("info", "*******************\n");
这很好:

freeswitch@internal> luarun luaargumenttest.lua one two 'thr ee'  four
+OK

freeswitch@internal> 2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 *******************
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 one2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 two2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 thr ee2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 four2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197
2012-06-24 11:56:55.873757 [INFO] switch_cpp.cpp:1197 *******************
但我如何输入参数值“三是一群人”


我已经尝试过\'、''、''以及“和\”,但没有尝试过这些工作。

我查看了FreeSWITCH代码,似乎没有办法逃避一句话:

这里mod_lua调用switch_separate_string()

这里,switch_separate_string调用separate_string_blank_delim(),它只捕获一个引号作为参数分隔符:

我试过这个例子,可以逃脱罚款。 这是在最新的GIT上完成的吗

lua q.lua one two 'three\'s a crowd'  four
2012-06-24 13:52:55.376758 [INFO] switch_cpp.cpp:1227 *******************
2012-06-24 13:52:55.376758 [INFO] switch_cpp.cpp:1227 one
2012-06-24 13:52:55.376758 [INFO] switch_cpp.cpp:1227 two
2012-06-24 13:52:55.376758 [INFO] switch_cpp.cpp:1227 three's a crowd
2012-06-24 13:52:55.376758 [INFO] switch_cpp.cpp:1227 four
2012-06-24 13:52:55.376758 [INFO] switch_cpp.cpp:1227 *******************

谢谢斯坦尼斯拉夫。我将在Jira中提出一个问题,目前我将在包装参数之前从参数值中删除单引号。您还可以更改工作流——例如,在ESL中捕获事件并执行代码