Instead of:
sh env.sh
You should run:
bash ./env.sh
Besides instead of:
source .profile
use:
source ~/.profile
Question
I am running a script which is echoing the environment variables in .profile file and than I am running the script, but I am getting following error
I tried following:
node@node-virtual-machine:~$ cat env.sh
#!/bin/bash
echo 'export JAVA_HOME=/home/node/jdk1.6.0_45' >> /home/node/.profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /home/node/.profile
cd /home/node/
source .profile
node@node-virtual-machine:~$ sh env.sh
sudo: source: command not found
How to execute .profile within a script?
Solution
Instead of:
sh env.sh
You should run:
bash ./env.sh
Besides instead of:
source .profile
use:
source ~/.profile
OTHER TIPS
If .profile
exists as /home/node/.profile
, you have all that is necessary.
Your script says /bin/bash
at the top but you run it with sh
which is probably dash
on your system. You probably are already running Bash at the prompt, so you should say source env.sh
instead of sh env.sh
if you want the variables to be exposed to your terminal.