如何设置包含服务器特定配置的文件夹来替换我的应用程序的默认配置?

问题描述 投票:0回答:1

我想要一个包含各种文件的文件夹,这些文件将在弹回应用程序时替换默认文件。

例如。如果我有一个

example1.csv
加载到
proc1.q

example1.csv
的路径是
/a/b/c/example1.csv

我希望能够放置我可以修改的

/a/b/temporary/example1.csv
,如果我弹跳
proc1.q
,它将在我的应用程序中被拾取。

我认为最好的方法是使用

$PATH
,但我的文件不是可执行文件。

另一个想法是创建文件位置和文件名的映射,例如

file1.csv | /a/b/c/file1.csv
file2.csv | /a/b/c/file2.csv 
file3.q   | /a/b/file3.q

有什么建议吗?

原因是我有某些文件会针对运行应用程序的每个服务器动态更改,我想每天提交到 gitlab 并跟踪每个服务器上应用程序的状态。

kdb torq
1个回答
0
投票

如果您可以按照您的建议访问命令行,那么您可以使用

.Q.def
.Q.opt
来接受默认的命令行参数。例如

> cat test.q
show files:.Q.def[`file1`file2`file3!(`$"/a/b/c/file1.csv";`$"/a/b/c/file2.csv";`$"/a/b/file3.q")].Q.opt .z.x;
>
> q test.q
KDB+ 3.5 2020.11.27 Copyright (C) 1993-2020 Kx Systems

file1| /a/b/c/file1.csv
file2| /a/b/c/file2.csv
file3| /a/b/file3.q
q)\\

> q test.q -file1 /a/b/temporary/file1.csv -file3 /a/b/c/d/file3.q
KDB+ 3.5 2020.11.27 Copyright (C) 1993-2020 Kx Systems

file1| /a/b/temporary/file1.csv
file2| /a/b/c/file2.csv
file3| /a/b/c/d/file3.q

因此,您可以在需要时将覆盖传递给命令行,否则您将回退到默认值。

您可以通过在弹起实例之前设置环境变量并使用

getenv
拉入环境变量来执行类似的操作 - 如果它们为空,则恢复为默认值。

© www.soinside.com 2019 - 2024. All rights reserved.