
No.1ベストアンサー
- 回答日時:
シェルスクリプト中でスクリプト名は「$0」で取得出来ます。
フルパスで指定しているのなら
「dirname $0」で(ファイル名を取り除いた)ディレクトリ部分が
取り出せます。
>cd /tmp
>cat hoge.sh
#! /bin/sh
echo dirname=`dirname $0`
>/tmp/hoge.sh
dirname=/tmp
>./hoge.sh
dirname=.
>sh /tmp/hoge.sh
dirname=/tmp
No.3
- 回答日時:
#1です。
補足です。> ↑をどこの場所で実行しても実行後には
> /home/user/xxxxx/yyyyy/zzzzz/の位置に移動をしていたいのですが、
スクリプト中でchdir(cd)すれば、
スクリプト内部ではディレクトリ移動出来ますが、
スクリプト終了後に、そのディレクトリ変更は親プロセス(シェル)には
反映されません。
>cat /tmp/hoge.sh
#! /bin/sh
echo dirname=`dirname $0`
cd `dirname $0`
echo pwd=`pwd`
>cd /home
>pwd
/usr/home
>/tmp/hoge.sh
dirname=/tmp
pwd=/tmp
>pwd
/usr/home
スクリプト内部でさらにシェルを起動すれば、
その子シェルの中では、ディレクトリ変更は有効になっていますが、
ご要望にはそわないかもしれないですね。
>cat /tmp/hoge2.sh
#! /bin/sh
echo dirname=`dirname $0`
cd `dirname $0`
csh
No.2
- 回答日時:
ちょっと疑問があるのですが、
> 実行した後にそのパスを利用してシェル位置まで移動したいです。
ということは、
/home/user/xxxxx/yyyyy/zzzzz/aaa.sh
の中でcdでディレクトリ移動したいのでしょうか?
スクリプトを実行してカレントディレクトリを移動するのは無理だと思うのですが。スクリプトの中でcdしても、スクリプトを抜けると元に戻るので。
この回答へのお礼
お礼日時:2007/01/16 20:03
すみません。ちょっと言葉がおかしかったですね。
スクリプト内で移動をしていればよくて、親プロセスは移動しないでもよかったんです。
助言ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
vba 正規表現について教えてく...
-
プログラム言語
-
pythonでのローカルファイルか...
-
vba クリップボードクリアにつ...
-
今のプログラミング言語
-
数学、プログラミング、物理、...
-
プログラミング言語のバージョ...
-
⚠️至急です!⚠️ Yahoo!知恵袋の...
-
uwscでPauseキーが押されたら、...
-
数行削除してコピーするbatファ...
-
itエンジニアに就職希望で未経...
-
Python... 環境設定 初心者です...
-
if関数とは?
-
著作権法について
-
プログラミングについて
-
自作scratch アニメの商用利用
-
趣味がプログラミングだと言っ...
-
OS入ってる機器のソフト・アプ...
-
COPYコマンドで、最後に1文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
if関数とは?
-
プログラム言語
-
pythonでのローカルファイルか...
-
著作権法について
-
vba 正規表現について教えてく...
-
画像生成AIのプロンプトの作り...
-
今のプログラミング言語
-
vba クリップボードクリアにつ...
-
プログラミングについて
-
自作scratch アニメの商用利用
-
数学、プログラミング、物理、...
-
pythonの実行に関する質問
-
pip --versionがエラーになる
-
OS入ってる機器のソフト・アプ...
-
Python... 環境設定 初心者です...
-
CSVファイルの複数行削除
-
Geminiフォーム 画像生成で 人...
-
プログラミングに興味があるの...
-
パイソンのソースコードをChatG...
-
Python 3.12.2 か一番最新のパ...
おすすめ情報