如何将具有字符串的函数发送到kdb中的远程实例?

时间:2017-07-10 20:19:30

标签: kdb

我已经打开手柄了。我正在尝试更改远程实例中的功能。以下是我的代码

h "loadHDB:{value "\\l /mnt/data/ord_us"}"

但它不起作用。我试图在字符串中添加\ \但是没有用。

3 个答案:

答案 0 :(得分:2)

另一种方法是使用set在远程进程中重新定义loadHDB。使用system意味着您可以避免转义反斜杠:

q)h ("set";`loadHDB; {value system "l /mnt/data/ord_us"})

答案 1 :(得分:1)

您需要转义内部引号,如下所示:

q)h "loadHDB:{value \"\\l /mnt/data/ord_us\"}"

我不知道加载是否有效,但至少字符串应该是正确的。

答案 2 :(得分:0)

我更喜欢使用-3! (.Q.s1)到'双字符串'它。记住-3!取决于控制台大小,因此这种方法可能并不总是合适的。对于这些远程函数,我们的想法是将要在双引号内执行的代码括起来 - 其中的任何其他字符串必须为-3!' ed和join。一个有用的测试'是-1打印消息。结果应该与您在远程控制台上执行的内容类似。

E.g。

q)printmsg:{-1 x;show value x;}
q)printmsg "2+2"
2+2
4
q)printmsg "system ",-3!"echo ",string .z.h
system "echo illysemacbook.local"
"illysemacbook.local"
q)-1 " "sv("John said";-3!"Hello Sir!";"Frank said";-3!"something!")
John said "Hello Sir!" Frank said "something!"

这有用吗?