我正在尝试运行以下脚本以将RDF数据加载到Virtuoso存储中。该脚本运行正常,但似乎没有任何内容上传到Virtuoso,因为SPARQL查询不显示任何结果。有什么想法吗?
#!/bin/bash
/usr/local/virtuoso-opensource/bin/isql 1111 dba dba <<EOF
SPARQL CREATE GRAPH <free>;
ld_dir('/home/najib', 'term.rdf', 'free');
rdf_loader_run();
SPARQL SELECT * FROM <free> WHERE {?s ?o ?p};
EOF
答案 0 :(得分:1)
引用你的heredoc EOF
:
#!/bin/bash
/usr/local/virtuoso-opensource/bin/isql 1111 dba dba <<'EOF'
SPARQL CREATE GRAPH <free>;
ld_dir('/home/najib', 'term.rdf', 'free');
rdf_loader_run();
SPARQL SELECT * FROM <free> WHERE {?s ?o ?p};
EOF
根据man bash
:
无参数扩展,命令替换,算术 执行扩展或路径名扩展 在单词上。如果引用单词中的任何字符,则分隔符是单词上的引号删除的结果, 并且不会扩展here-document中的行。 如果单词不加引号,则此处的所有行 - 文档 - 进行参数扩展,命令替换和算术扩展。在lat- 例如,字符序列\被忽略,\必须用于引用字符\,$, 和`。
PS:同时确保在关闭之前没有空格EOF