在shell脚本中执行q

时间:2013-08-15 00:35:48

标签: shell kdb q-lang

我需要加载带有硬编码字典的q文件,插入一个键并将字典中返回的值分配给shell脚本中的环境变量。

这在q中的样子如何:

q)\l /home/.../marketconfig.q

q)show marketconfig[`US]

这是我需要的形式:

CONFIG=\`q /home/.../marketconfig.q ; show marketconfig[\`US]\`

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

test.sh:

#/bin/bash
CONFIG=`q test.q`
echo config is $CONFIG

test.q:

-1 "FOO";
exit 0;

输出:

$ ./test.sh
KDB+ 2.7 2011.11.09 Copyright (C) 1993-2011 Kx Systems
l64/ ...

config is FOO

似乎适合我。 -1在标准输出上打印。 0N!也有效。

答案 1 :(得分:1)

在bash中,您可以使用heredoc:

#!/bin/bash
CONFIG=$(q /home/.../marketconfig.q << 'EOF'
show marketconfig[`US]
EOF
)

答案 2 :(得分:0)

这是将它表达为一个语句而不需要更改原始文件或添加额外文件的好方法:

CONFIG=\`q<<<'system "l marketconfig.q"; show marketconfig[\\`US]'`