bash カレントディレクトリの取得

macOSでシェルスクリプトからターミナルを開き、シェルスクリプトを実行しているカレントディレクトリに移動したい。


カレントディレクトリの取得
SCRIPT_DIR=$(cd $(dirname $0) ; pwd)


例:
シェルスクリプトから新しいターミナルを開き、元のシェルスクリプトを実行しているカレントディレクトリに移動

#!/usr/bin/bash

# get dirname of this script
SCRIPT_DIR=$(cd $(dirname $0) ; pwd)
echo $SCRIPT_DIR

# set command
NEW_TERMINAL="osascript -e 'tell app \"Terminal\" to do script \"cd "$SCRIPT_DIR"; ls -l\"'"

# open new terminal
eval ${NEW_TERMINAL}
参考
カレントディレクトリの取得
〜書き方による読みやすさの違い〜
#!/usr/bin/bash

# get dirname of this script 1
# $()はネストされていても分かり易い
SCRIPT_DIR1=$(cd $(dirname $0) ; pwd)
echo $SCRIPT_DIR1

# get dirname of this script 2
# クォテーションでネストすると分かり難くい
SCRIPT_DIR2=`cd  "\`dirname $0\`"; pwd`
echo $SCRIPT_DIR2

# get dirname of this script 3
# ネストせずに書いても分かり易い
cd `dirname $0`
SCRIPT_DIR3=`pwd`
echo $SCRIPT_DIR3

Comments

Popular Posts