下記、やりたいことうまくいかないことを書かせていただきます。
何か解決策があればご教示をお願いいたします。
よろしくお願いいたします。
やりたいこと
Makefile内で.zprofileを生成して、その値を読み込ませて利用したいです。
うまくいかないこと
.zprofileの記述は正しく処理されるが、次のステップでsourceコマンドで読み込ませた値が反映されません。
コード
step1で.zprofileに記載したパスを通して、step2で利用してコマンドを実行する。
Makefile
1setup: step1 step2 2 3step1: 4 echo export PATH='$$PATH:${HOME}/bin' >> ~/.zprofile 5 6step2: 7 source ~/.zprofile 8 hello
実行結果
helloというコマンドへのパスを読み込ませているのですが、helloコマンドが見つからないとエラーになります。
zsh
1% make setup 2echo export PATH='$PATH:/Users/username/bin' >> ~/.zprofile 3source ~/.zprofile 4hello 5make: hello: No such file or directory 6make: *** [step2] Error 1
続けて、Makefile内で記述したのと同じsourceコマンドを実行するとパスが通っています。
zsh
1% source ~/.zprofile 2% hello 3hello
1度目のmakeが失敗し、手動でsourceコマンドで読み込ませた後、再度makeを実行すると、正しく実行されます。
zsh
1% make setup 2echo export PATH='$PATH:/Users/username/bin' >> ~/.zprofile 3source ~/.zprofile 4hello 5hello
その他
シェルはzshと.zprofile、bashと.bashprofileの組み合わせで試しましたが、同様に現象となりました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。