0

我正在尝试根据此处使用 Cypher shell 执行一系列 Cypher 查询。我创建了一个名为“cypher.ex1”的文件并将其放入 import 和 bin 文件夹中。这是它的内容:

MATCH (n) RETURN n;

MATCH (batman:Person {name: 'Bruce Wayne'}) RETURN batman;

我正在尝试使用以下方法执行它:

$neo4j-home> cat cypher.ex1 | bin/cypher-shell -u neo4j -p 123456 --format plain

但是当我运行它时,什么都没有发生,在等待很长时间没有输出之后,我需要按“CTRL + C”来终止命令。这是问题的屏幕截图:

在此处输入图像描述

事实上,cypher-shell 对一行命令运行良好,但不适用于脚本。怎么了?

4

1 回答 1

1

您正在尝试执行此命令行:

cat cypher.ex1 | bin/cypher.shell -u neo4j - 123456

从环境内部cypher.shell那是行不通的,因为cypher.shell只支持 Cypher 语句和一组有限的命令(使用:help命令查看可用的内容)。

你什么也没发生(甚至没有错误)的原因是因为cypher.shell在你的命令行开头没有看到冒号(':'),所以它假设你正在输入一个 Cypher 语句并且正在(永远)等待在解析之前结束分号 (';')。

如果要执行该确切的命令行,则必须在外部执行它cypher-shell(当它未运行时)。

但是,如果您确实想在环境中执行等效操作cypher.shell可以使用它的:source命令。例如:

:source cypher.ex1

源文件的默认位置是“当前工作目录”,也就是您启动时所在的目录cypher.shell。如果文件在别处,您可以指定文件从当前工作目录的相对路径作为:source参数。

于 2020-02-14T23:10:51.023 回答