4

特定のパスにデータベースをロードし、その上で何らかの処理を行う aq スクリプトを作成しています。現在、db の場所はスクリプトにハードコーディングされていますが、db パスを引数として渡し、変数のパスからロードするようにしたいと考えています。

現在、次のようになっています。

q) \l /path/to/dbDir        #Works

.Ql では変数を使用してこれを行う必要があることがわかったので、スクリプトで次を使用してみました。

dbPath:`$.z.x 0
.Q.l hsym dbPath            #Fails

引数 /path/to/dbDir を指定して実行すると、スクリプトは常に読み取り不能な内容で失敗し、次のようになります。

':/path/to/dbDir: No such file or directory

誰か助けてくれませんか?

4

3 に答える 3

5

\x ...は常に と同等です。これは、「変数をコマンドsystem"x ..."に渡すにはどうすればよいですか?」という質問に対する一般的な解決策です。\

あなたの場合、あなたが望む

system"l ",.z.x 0

(ところで、私はデータのみのコードに.Q.l関与しているとは思わ\lないので、それを使用して余分な .q ファイルをロードしようとしないでください)

于 2012-03-23T02:49:28.027 に答える
4

.Qlは、hsym ではなくファイルまたはディレクトリ名である単一の引数のみを取る\lと同義です。

ちなみに、判読できないものは関数定義であり、その後に型エラーが続きました (hsym を想定していなかったため)。

于 2011-07-12T13:51:05.617 に答える
2

さて、次のように hsym なしで .Ql を試すとうまくいくようです:

dbPath:`$.z.x 0
.Q.l dbPath
于 2011-07-06T11:13:10.837 に答える