1. ホーム
  2. bash

[解決済み] スクリプトで "cd "を使ってディレクトリを変更することができないのですが?

2022-03-20 16:18:40

質問

カレントディレクトリをプロジェクトディレクトリに変更する小さなスクリプトを書こうとしています。

#!/bin/bash
cd /home/tree/projects/java

このファイルをprojとして保存し、実行権限を追加して chmod にコピーし、それを /usr/bin . で呼び出すと。 proj を実行しても、何も起こりません。私は何を間違えているのでしょうか?

解決方法を教えてください。

シェルスクリプトはサブシェル内で実行され、各サブシェルはカレントディレクトリが何であるかについて独自の概念を持っています。そのため cd が成功しても、サブシェルが終了するとすぐに対話型シェルに戻り、そこでは何も変わっていない。

これを回避する一つの方法は、代わりにエイリアスを使用することです。

alias proj="cd /home/tree/projects/java"