[英]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.