yuu_nkjm blog
2011-02-05(Sat) [長年日記]
[bash][Linux][Java] シェルスクリプトの設置場所に移動してからのコマンド実行
状況
"/home/hoge/deep/path/project/sh/"という位置にJavaプロジェクトの起動スクリプトを置きたい.Javaのクラスパスの関係から,"/home/hoge/deep/path/project/"でjavaコマンドを発行したい.
スクリプト
起動スクリプトとしてboot.shを作成し,"/home/hoge/deep/path/project/sh/"に設置する.
シェルスクリプトの$0という環境変数には,スクリプトの相対パス付ファイル名が入っている.dirnameコマンドを使って,そこからファイル名を取り除いている.
以下では,全てを絶対パスに変換してから渡しているが,Javaに渡す引数は絶対パスではなく,javaコマンドを実行するパスからの相対パスにした方が良いかもしれない.
#!/bin/bash
SCRIPT_CALLED_DIR=`pwd`
echo This script is called from ${SCRIPT_CALLED_DIR}
SCRIPT_LOCATED_DIR=${SCRIPT_CALLED_DIR}/`dirname $0`
echo This script is located at ${SCRIPT_LOCATED_DIR}
cd ${SCRIPT_LOCATED_DIR}
echo Move to script dir ${SCRIPT_LOCATED_DIR}
cd ../
PROJECT_DIR=`pwd`
echo Move to Project dir ${PROJECT_DIR}
`java -cp bin:jar/log4j-1.2.15.jar info.nkjm.yuu.Hoge`
実行結果
どこからboot.shを実行しても,javaコマンドを実行したい"/home/hoge/deep/path/project/"に移動できている.
[hoge@info /home/hoge]$ deep/path/project/sh/boot.sh
This script is called from /home/nkjm
This script is located at /home/hoge/deep/path/project/sh
Move to script dir /home/hoge/deep/path/project/sh
Move to Project dir /home/hoge/deep/path/project
[hoge@info /home/hoge/deep/path]$ project/sh/boot.sh
This script is called from /home/hoge/deep/path
This script is located at /home/hoge/deep/path/project/sh
Move to script dir /home/hoge/deep/path/project/sh
Move to Project dir /home/hoge/deep/path/project
関連ページ
- この記事のwindows版?バッチファイルが存在するディレクトリへ移動する
-
shスクリプト内で安全に相対パスを使うで紹介されているように,
というのを定番にしても良いかも.#!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR # これ以下に処理を書く
- https://www.google.co.jp/ ×249
- https://www.google.co.jp/ ×11
- https://www.google.com/ ×5
- https://www.google.com/search ×3
- https://www.google.co.jp/?gws_rd=cr ×2
- http://search.fenrir-inc.com/?q=ping sh スクリプト&hl=j... ×1
- http://search.babylon.com/?q=シェル内で移動&babsrc=HP_ss&... ×1
- http://search.babylon.com/?q=Postfix シェル起動 クラスパス&s... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- https://www.google.com/m/search ×1
- http://search.smt.docomo.ne.jp/result?search_box=シ... ×1
- http://search.babylon.com/?s=web&rlz=0&babsrc=HP_s... ×1
- https://www.google.com/reader/view/ ×1
- http://search.fenrir-inc.com/?q=さくら シェル 置き場所&hl=ja... ×1
- http://search.yahoo.co.jp/ ×1
- http://t.co/kaFWrZFB ×1
- http://search.babylon.com/?q=シェル Java プロジェクト&s=web... ×1
- https://www.google.com/webhp?hl=ja ×1
- https://www.google.co.jp/search?q=シェルスクリプト 設置場所 ×1
- java シェル パス ×5 / シェルスクリプト 移動 ×4 / java シェルスクリプト 実行 ×4 / シェルスクリプト 場所 ×4 / windows dirname コマンド ×3 / cp 相対パス sh ×3 / シェルスクリプト 置き場所 ×2 / 実行シェルの配置パス ×2 / Shell スクリプト 移動 ×2 / スクリプト 場所 移動 ×2 / move to シェル ×2 / シェルスクリプト パス 移動 ×2 / java シェルスクリプト ×2 / java シェルスクリプト起動 パス ×2 / Windows シェルスクリプト パス ×2 / sh move ×2 / javaでJavaからシェルスクリプトを起動 ×2 / シェルスクリプト move ×2 / java シェル実行 応答町 ×2 / シェルスクリプト コマンド 発行 ×2 / java 設置場所 ×2 / シェルスクリプト cdコマンド ×1 / SHELL 移動 ×1 / ksh シェルスクリプト 絶対パス ×1 / bash シェルスクリプト 置き場所 ×1 / windows バッチ配置場所 移動 ×1 / sh 配置場所 ×1 / シェル windows move ×1 / shファイル 設置場所 ×1 / linux user bin ×1 / Shell 移動 実行 ×1 / shell script java 実行 ×1 / Java プロジェクト実行シェル ×1 / シェルからjava起動 ×1 / シェルスクリプト 格納場所 ×1 / java シェル 引数 ×1 / java shell 起動 ×1 / java シェルスクリプト 標準エラー ×1 / パスを移動して実行 シェルスクリプト ×1 / シェル java 絶対パス ×1 / シェルスクリプト cd 移動するには ×1 / java linux 絶対パス 実行 ×1 / シェルスクリプト 配置場所 ×1 / java bashスクリプト 実行 ×1 / linux シェル 配置場所 ×1 / シェル java クラス 実行 ×1 / colinux java shell 実行 ×1 / linux スクリプト 置き場所 ×1 / eclipse bash 実行 ×1 / sh telnet 置き場所 ×1 / shell script move ×1 / シェルスクリプト 配置場所 java ×1 / java コマンド フルパス 実行 ×1 / シェルスクリプト 配置 ×1 / bash スクリプトの場所 ×1 / bash 実行 コマンド 絶対パス ×1 / java シェルコマンド 実行 ×1 / sh配置場所 ×1 / sh シェルスクリプト java bin ×1 / SCRIPT_DIR=$(cd `dirname $0`; pwd -L) ×1 / sh 実行 windows android ×1 / シェルコマンド 移動 ×1 / シェル スクリプト 場所 ×1 / スクリプト 設置場所 ×1 / シェルスクリプト スクリプトの場所へ移動 ×1 / Linux bash 場所を移動 ×1 / bash java 実行 ×1 / df スクリプト シェル 場所 ×1 / shell script 場所 ×1 / シェル 場所 ×1 / shell script 相対パス ×1 / シェル javaコマンド 実行 引数 ×1 / シェルスクリプト while cdで移動 ×1 / シェルスクリプト javaに渡す ×1 / シェルスクリプト スクリプト ファイルの場所 移動 ×1 / シェルスクリプト 移動先 相対パス ×1 / shell idou ×1 / shell script 移動 ×1 / linux シェルスクリプト 配置場所 探す ×1 / java コマンド cp シェル linux ×1 / シェルスクリプトからjava実行 ×1 / シェルスクリプト java 実行 dirname ×1 / シェル java 実行 ×1 / bash 実行 相対パス ×1 / シェル置く場所 $0 ×1 / android java コマンド実行 ×1 / bash スクリプト シェルの位置 移動 ×1 / ssh シェルスクリプト シェル 移動 ×1 / JAVA class script 起動 ×1 / スクリプト 場所 ×1 / シェル内 シェル実行 ×1 / シェル 起動 java 相対パス ×1 / バッチファイルからshell script ×1 / ruby アプリケーション 動かす shell ×1 / java shファイル 実行 shコマンド ×1 / シェルスクリプト ファイルの場所に移動 ×1 / シェル move ×1 / moveTo java show windows7 ×1 / bat cd bash 実際に移動 ×1 / google map 場所の移動コマンド ×1