以下のsample.sh
を~で実行して、sample.sh
自身のパスと、内部でexportした環境変数を使用できるようにすることを両立させたいですが、以下のようにどっちかが成り立てばどっちかがだめになる状況です。
両立させるようにするにはどうすればよろしいでしょうか?
sample.sh
bash
1CUR_DIR=$(cd $(dirname $0); pwd); echo CUR_DIR=$CUR_DIR 2export HOGE="hoge/$CUR_DIR"
シェルスクリプトの配置と実行時のカレントディレクトリ
bash
1~/ # ←シェル実行時のカレント 2 |- test/ 3 |- sample.sh
コマンドライン
bash
1~$ sh ./test/sample.sh 2# この場合、/home/usr/test と出力されるが、exportした環境変数HOGEが使えなくなる
bash
1~$ source ./test/sample.sh 2# この場合、このプロンプトのカレント/home/usr/ と出力されてしまう。exportした環境変数HOGEは使えるが、意図しない内容になってしまう
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。