在Shell脚本中执行q命令

4
我需要在shell脚本中加载一个包含硬编码字典的q文件,插入一个键并将从字典返回的值分配给环境变量。 在q中,它看起来像这样:
q)\l /home/.../marketconfig.q

q)show marketconfig[`US]

这是我需要的表单类型:
CONFIG=\`q /home/.../marketconfig.q ; show marketconfig[\`US]\`

感谢大家的帮助!

3个回答

1
在bash中,您可以使用heredoc:
#!/bin/bash
CONFIG=$(q /home/.../marketconfig.q << 'EOF'
show marketconfig[`US]
EOF
)

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 需要一个字符串,所以如果你的配置还不是一个字符串,你需要使用字符串函数或 -3! - Manish Patel

0

这是一种很好的方式,可以用一个语句来表达它,无需更改原始文件或添加额外的文件:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接