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

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


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


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

  1. #!/usr/bin/bash
  2.  
  3. # get dirname of this script
  4. SCRIPT_DIR=$(cd $(dirname $0) ; pwd)
  5. echo $SCRIPT_DIR
  6.  
  7. # set command
  8. NEW_TERMINAL="osascript -e 'tell app \"Terminal\" to do script \"cd "$SCRIPT_DIR"; ls -l\"'"
  9.  
  10. # open new terminal
  11. eval ${NEW_TERMINAL}
参考
カレントディレクトリの取得
〜書き方による読みやすさの違い〜
  1. #!/usr/bin/bash
  2.  
  3. # get dirname of this script 1
  4. # $()はネストされていても分かり易い
  5. SCRIPT_DIR1=$(cd $(dirname $0) ; pwd)
  6. echo $SCRIPT_DIR1
  7.  
  8. # get dirname of this script 2
  9. # クォテーションでネストすると分かり難くい
  10. SCRIPT_DIR2=`cd "\`dirname $0\`"; pwd`
  11. echo $SCRIPT_DIR2
  12.  
  13. # get dirname of this script 3
  14. # ネストせずに書いても分かり易い
  15. cd `dirname $0`
  16. SCRIPT_DIR3=`pwd`
  17. echo $SCRIPT_DIR3
  18.  

Comments

Popular Posts