【问题标题】:How to use resources from an Ammonite script?如何使用来自 Ammonite 脚本的资源?
【发布时间】:2020-09-16 23:50:18
【问题描述】:

我有一些菊石脚本,它们存储在一个文件夹中。该文件夹位于我的 PATH 上,因此无论身在何处,我都可以轻松调用这些脚本。

我可以在同一个文件夹中导入其他菊石脚本:

$import $file.<name_of_the_other_script>

但是我想“导入”一个简单的文本文件,将其内容保存为字符串并稍后使用。

我能做到:

val myString = os.read(os.root/"absolute"/"path"/"to"/"the"/"file")

但出于显而易见的原因,我不想使用绝对路径。相对路径不起作用,因为它是相对于我从中调用脚本的文件夹,而不是相对于脚本所在的位置。

有什么办法可以做到吗?

编辑:

#/bin/bash

echo $BASH_SOURCE

如果上述 bash 脚本中的功能可以在 Ammonite 中复制,问题就可以轻松解决。

【问题讨论】:

    标签: ammonite


    【解决方案1】:

    我认为您可以像这样使用ammonite.ops 阅读资源:

    val resourcePath = resource/'test/'ammonite/'ops/'folder/"file.txt"
    read(resourcePath).length        ==> 18
    read.bytes(resourcePath).length  ==> 18
    read.lines(resourcePath).length  ==> 1
    

    请参阅 Ammonite 文档中的 Reading Resources

    【讨论】:

    • 问题是资源根文件夹不是原脚本文件所在的文件夹。所以这样我就无法访问与原始脚本位于同一文件夹中的文件。
    猜你喜欢
    • 2017-08-24
    • 2023-02-22
    • 2019-12-24
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多