[英]Shell Scripts in Mac OS X run from home directory?
我是Windows和Linux的長期用戶,並且在Mac OS X上編寫shell腳本有一些奇怪的經歷。特別是,我可以編寫腳本並從終端運行它們,但每次我嘗試從Finder運行一個它始終從用戶的主目錄而不是腳本所在的目錄執行。 也就是說,如果腳本位於
~/path/to/the/script.sh
它總是耗盡~
。 在過去,我不得不問我更多精通Mac的朋友如何解決這個問題,而且他們經常使用一些非常糟糕的技術來做到這一點,但我認為沒有任何理由可以解決這個問題。
我的問題是 - 有沒有一種簡單的方法可以在Mac OS X中編寫一個shell腳本,當在Finder中雙擊時,它會用完它所在的目錄?
這種行為似乎與我一致。 它繼承了您的finder實例環境,該環境將根植於您的主目錄。
但是,修復起來並不難。
cd "$(dirname "$0")"
應該做的伎倆ala:
richh-desktop % fullname.sh
/home/richh/bin
richh-desktop % cd ..
richh-desktop % fullname.sh
/home/richh/bin
richh-desktop %
如果您希望腳本在其所在的目錄中運行,則腳本必須更改其工作目錄。 鑒於您的示例是用bash編寫的,我將使用bash示例進行響應。 $ _值設置為當前腳本的絕對路徑。 您可以通過運行man bash找到更多信息
#!/bin/bash
PROGPATH=$(dirname $_)
cd $PROGPATH
# Do your stuff here
這將取決於腳本為您更改目錄。 查看此頁面 。
$0
的目的是解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.