簡體   English   中英

Mac OS X中的Shell腳本從主目錄運行?

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

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