I had a problem that my cron script wasnt loading the environment variables so I added the following line:

#!/bin/sh
bash /root/.bash_profile

This seems to have no effect and the path variables are not being set correctly. How do I run the bash_profile script

link|improve this question

feedback

3 Answers

up vote 4 down vote accepted

bash /root/.bash_profile will create a new bash process, run that file (and I assume set your env variables while doing so), and then exit, taking those newly set env variables with it.

Try . /root/.bash_profile. Or source /root/.bash_profile. That will execute the file in the current bash process, so your env variables will be available to the current process.

You may also want to use #!/bin/bash instead of #!/bin/sh if you're going to do bash-style invocations.

link|improve this answer
feedback

. /root/.bash_profile or source /root/.bash_profile. which says to run that file in the current shell. Your method runs .bash_profile in s subshell, That sets up the variables in the subshell, then this subshell exits, taking these variables with it.

link|improve this answer
feedback

If you want to include the variables in the .bash_profile file, you need to source it in your script.

Simply executing the script will not include the exported variables.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.