How to run .profile inside a shell script in ubunt

2019-07-21 20:37发布

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?

标签: bash shell sh
3条回答
手持菜刀,她持情操
2楼-- · 2019-07-21 21:12

If .profile exists as /home/node/.profile, you have all that is necessary.

查看更多
Anthone
3楼-- · 2019-07-21 21:21

Instead of:

sh env.sh

You should run:

bash ./env.sh

Besides instead of:

source .profile

use:

source ~/.profile
查看更多
冷血范
4楼-- · 2019-07-21 21:26

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.

查看更多
登录 后发表回答