我有一个运行Go程序的bash脚本。这就是它所做的一切,当我从命令行运行它时,它工作得很好。
但是,当我在查找器中双击它来运行它时,它返回/Users/colin/go/metgen/metaphorgenerator.sh: line 2: ./binary: No such file or directory
所以我让它回显它的工作目录,它只打印/Users/colin
,我的主目录。
如何让它从文件所在的目录运行代码?(我希望它在任何目录下都能工作)
发布于 2018-06-02 07:41:22
$0
是完整的程序名。因此,您可以使用HERE=$(dirname "$0")
获取该目录。
然后,第2行应该有${HERE}/binary
。
发布于 2018-06-02 07:50:14
您需要将其指向可执行文件的位置,可以使用工作目录的相对路径(如go/metgen/binary
)、绝对路径(如/Users/colin/go/metgen/binary
)或absolute path based on the parent executable (不幸的是not reliable)。
https://stackoverflow.com/questions/50651888
复制相似问题