人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

シェルスクリプト内で実行した cd コマンドをターミナルに反映させたい

シェルスクリプト内で実行した cd コマンドの結果のディレクトリへの移動を、そのシェルスクリプトを実行したターミナルに反映させたいと思い、次のようなコードを書いたのですが、"exec: cd: 見つかりません" と言われてしまいます。

#!/bin/bash
exec cd /tmp

対策として、次の2つが思い付きました。ただ、もっとエレガントに、シェルスクリプトの中だけで完結させる方法はないでしょうか。

o シェルスクリプトでは、移動したいディレクトリを echo するだけにする。そしてその結果に対して cd する。
o .bashrc の関数にする

●質問者: mori_dev
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kodairabase
●10ポイント

Ubuntuを利用されているということなので、下記のようにスーパーユーザーで実行してみて下さい。

sudo exec cd /tmp

2 ● a-kuma3
●190ポイント ベストアンサー

exec は、fork せずに exec システムコールを呼ぶためのコマンドなので、組込コマンドである cd を呼んでも、「見つかりません」、となってしまいます。
質問にある "exec: cd: 見つかりません" は、"exec コマンドが cd を見つけることができない" という意味です。

質問であげられた方法以外に、以下のような感じで、期待してることができると思います。

後者は、こんな感じのスクリプトになります。

#!/bin/bash
cd /tmp
exec /bin/bash
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ