4

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

这是它在 q 中的样子:

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

q)show marketconfig[`US]

这是我需要的一种形式:

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

谢谢你们的帮助!

4

3 回答 3

1

在 bash 中,您可以使用 heredoc:

#!/bin/bash
CONFIG=$(q /home/.../marketconfig.q << 'EOF'
show marketconfig[`US]
EOF
)
于 2014-08-03T22:21:57.470 回答
1

测试.sh:

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

测试.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!也可以。

于 2013-08-15T16:13:40.367 回答
0

这是一种将其表达为一条语句的好方法,无需更改原始文件或添加额外文件:

CONFIG=\`q<<<'system "l marketconfig.q"; show marketconfig[\\`US]'`
于 2013-08-19T14:59:45.700 回答