相关疑难解决方法(0)

如何确定正在运行的Haskell脚本或应用程序所在的目录?

我有一个Haskell脚本,通过使用该runhaskell实用程序的shebang线运行.例如..

#! /usr/bin/env runhaskell
module Main where
main = do { ... }
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够从脚本本身确定该脚本所在的目录.因此,如果脚本存在/home/me/my-haskell-app/script.hs,我应该能够使用相对或绝对路径从任何地方运行它,它应该知道它位于/home/me/my-haskell-app/目录中.

我认为System.Environment模块中可用的功能可能会有所帮助,但它有点短暂. getProgName似乎没有提供有用的文件路径信息.我发现环境变量_(这是一个下划线)有时会包含脚本的路径,因为它被调用了; 但是,只要通过其他程序或父脚本调用脚本,该环境变量似乎就会失去其值(我需要从另一个父应用程序调用我的Haskell脚本).

同样有用的是我是否可以使用相同的技术或其他方式确定预编译的Haskell可执行文件所在的目录.

haskell path absolute-path

10
推荐指数
3
解决办法
1548
查看次数

标签 统计

absolute-path ×1

haskell ×1

path ×1