

シェルスクリプト内のcdコマンドで、カレントディレクトリを変えるにはどうしたらいいか?をどうか教えて下さい。
MS-DOSのバッチファイル内で"cd XXXXX"と書き実行した時の動作を、UNIX(CygWin)環境でも行いたいです。
が、シェルスクリプトは(サブシェルで動く為)カレントディレクトリが変わってくれません。aliasコマンド等でいろいろ実験しましたが、DOSバッチファイルのように「バッチファイル単体でディレクトリ移動が出来る方法」を探し出せませんでした。
極めて初歩的とは存じますが、どうか宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
カレントディレクトリはプロセスの属性なので、子プロセス内で変更しても親には影響しないというのはおわかりのようなので、親プロセスの中で実行すればいいわけです。
今実行しているシェルプロセスの中でスクリプトファイルに書かれたコマンド群を実行するには、ピリオドコマンドもしくはsourceコマンドを使います。
. スクリプトファイル名
か
source スクリプトファイル名
で実行してください。
別の方法としては、やりたいことをスクリプトファイルに書くのでなく、aliasや関数で定義するという方法もあります。
たとえば引数がディレクトリならそこにcdする関数は、
cddd() { test -d $1 && cd $1; }
と.bashrcなどで定義します。
No.2
- 回答日時:
DOSのバッチファイルとどうような処理をさせようとすると,sourceコマンドを使うことになるかと思います.
例えば,cdを含むスクリプトscr.sh を書いておいて,
source ./scr.sh
とやるとか.
(で,これをaliasで別名を割り振ることになるかと.その場合, scr.sh は絶対パスを指定する必要が出てきますが)
この回答への補足
期待通りになりました。どうも有難うございました。
が、No3の方がより単純な . の方法を教えてくださりました。
それを使おうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 文字列にスペ...
-
make test って何をするための...
-
VisioのVBAでユーザにファイル...
-
バッチファイルを使ってテキス...
-
ダブルクォーテーションのファ...
-
ftpコマンドを実行すると「425 ...
-
コンピュータ名をファイル名に...
-
コマンドプロンプトをクリック...
-
コマンドプロンプトで、特定の...
-
WSHで他のバッチを呼びその終了...
-
【LINUX】sudoコマンドについて
-
DOSコマンドに詳しい方、お知恵...
-
VB6.0 から RFIDタグを制御す...
-
シェルの「:コマンドが見つか...
-
シェルからpsqlコマンドでトラ...
-
バッチファイル
-
バッチコマンドのIF文(条件...
-
シェルスクリプト内のcdで、カ...
-
xCopyコマンドでネットワークご...
-
AccessVBAで実行時間を指定する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 文字列にスペ...
-
コマンドプロンプトをクリック...
-
バッチ終了時にDOS窓を閉じるコ...
-
make test って何をするための...
-
ftpコマンドを実行すると「425 ...
-
シェルの「:コマンドが見つか...
-
バッチファイルを使ってテキス...
-
コンピュータ名をファイル名に...
-
DOSコマンドに詳しい方、お知恵...
-
xCopyコマンドでネットワークご...
-
AccessVBAで実行時間を指定する...
-
findstrでヒットした1行前の文...
-
ftpコマンド出力結果の取得
-
シェルスクリプト(.sh)で、10進...
-
バッチえファイルを編集するに...
-
VBA 特定文字含むファイル
-
VisioのVBAでユーザにファイル...
-
複数のフォルダを開くバッチフ...
-
コマンドプロンプトでファイル...
-
シェルスクリプト内のcdで、カ...
おすすめ情報