bash cd到當下目錄位置

在mac中將副檔名改.command後,就可以直接點選並執行該檔內容的script。有次發現想要執行 java -jar helloworld.java 時卻跳出Unable to access jarfile的錯誤訊息,拜訪谷歌大神後發現,原來是執行.command時,當下執行的位置是在home底下而非當下目錄。這時候可以使用下列script去切換到當下目錄位置。

SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

cd "$DIR"

參考:https://stackoverflow.com/questions/13861192/unable-to-access-jarfile-from-a-script-on-mac?rq=1

0 0 vote
Article Rating
guest
0 Comments
Inline Feedbacks
View all comments