簡體   English   中英

腳本從命令行運行,但不是從查找器運行

[英]Script runs from command line, but not from finder

我有一個運行我的Go程序的bash腳本。 這就是它的全部工作,當我從命令行運行它時,它可以正常工作。

但是當我在Finder中雙擊運行它時,它返回/Users/colin/go/metgen/metaphorgenerator.sh: line 2: ./binary: No such file or directory

所以我讓它回顯了它的工作目錄,並且只打印了/Users/colin我的主目錄。

如何從文件所在的目錄中運行代碼? (我希望它在任何目錄中都能正常工作)

您需要將其指向可執行文件的位置,或者使用工作目錄中的相對路徑(如go/metgen/binary ,絕對路徑(如/Users/colin/go/metgen/binary )或基於父級的絕對路徑可執行文件 (不幸的是不可靠 )。

$0是完整的程序名稱。 因此,您可以使用HERE=$(dirname "$0")獲得目錄。

然后,第2行應具有${HERE}/binary

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM