3

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

3 Answers 3

5

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.

1

. /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.

0

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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