我需要使用硬编码字典加载 aq 文件,插入一个键并将字典中的返回值分配给 shell 脚本内的环境变量。
这是它在 q 中的样子:
q)\l /home/.../marketconfig.q
q)show marketconfig[`US]
这是我需要的一种形式:
CONFIG=\`q /home/.../marketconfig.q ; show marketconfig[\`US]\`
谢谢你们的帮助!
在 bash 中,您可以使用 heredoc:
#!/bin/bash
CONFIG=$(q /home/.../marketconfig.q << 'EOF'
show marketconfig[`US]
EOF
)
测试.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!也可以。
这是一种将其表达为一条语句的好方法,无需更改原始文件或添加额外文件:
CONFIG=\`q<<<'system "l marketconfig.q"; show marketconfig[\\`US]'`