How does the PATH environmental variable work?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How does the PATH environmental variable work?
# 1  
Old 11-27-2009
How does the PATH environmental variable work?

Hello.

I have a question about how the PATH environment variable works.
I wrote a script in $HOME/bin/gvim.
I want it to be called instead of /usr/bin/gvim,
so I've placed it before in the PATH.

However, it is still the old one that is found.
If I open an other terminal, I have the desired effect: the script in $HOME/bin is found


I don't understand how it's possible to have two terminals where the PATH variable is the same, echo $PATH outputs the same thing, but the two don't find the same script.
Could anyone explain me the subtlety I'm missing here?
Thanks in advance.
# 2  
Old 11-27-2009
after changing the PATH did you re ran the .profile??
if not run it (. .profile) then you will get the desired result..
# 3  
Old 11-27-2009
Quote:
Originally Posted by vidyadhar85
after changing the PATH did you re ran the .profile??
if not run it (. .profile) then you will get the desired result..
Thanks for the reply.
Sourcing the .profile did make the difference.

Why do I need to re-run the .profile?
# 4  
Old 11-27-2009
because this will be written inside .profile
Code:
export PATH

after changing the PATH just by exporting also you can see the result no need to source the full .profile :-)
# 5  
Old 11-27-2009
Thanks again for help

Now I know how I came up with two terminals with the PATH, but not the same call
Here is what happened.

I created a script in $HOME/bin/gvim

It was not executable (forgot to chmod +x), but there is another farther in the PATH

I call once gvim. I skips the one not executable, calls the second one.

I changed with 'chmod +x' the first one.

Surprisingly, it still skips the first one, and calls the second one. Except if I open another terminal.
# 6  
Old 11-28-2009
Strange. On a hunch, try hash -l. You set your new path without logging out, but a new shell works like you want. It the old path is hashed, it will take precedence.
# 7  
Old 11-28-2009
A lot of shells cache the results of a PATH search so that they do not continually rescan all of the directories on the PATH looking for stuff. Most of the time this speeds stuff up nicely. But sometimes those caches become a pain. My solution, which I admit is extreme, is to restart the shell. So say I'm running ksh. I do this:
exec ksh
This causes the shell to replace itself with a new copy. ksh calls this particular feature "tracked aliases" and I think that "unalias gvim" would work, but I actually never have tried it. I just restart the whole shell.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with cron and environmental variable

My shell script it.sh.I am calling bip.sh from it.sh #!/bin/sh ORACLE_HOME=/var/opt/oracle/product/10g; export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin:/bin:/usr/bin; export PATH today=`date "+%m-%d-%Y %H:%M:%S"`; export today CUR_DIR=$1; export CUR_DIR LOG_FILE=$CUR_DIR/error.log;... (4 Replies)
Discussion started by: rafa_fed2
4 Replies

2. Shell Programming and Scripting

Clearing a environmental variable

i set a variable from the command line: export GANG="james,roy,martin" i can access this variable ($GANG) from a script. but each time i run the script, the variable keeps getting bigger. more info keeps getting added to it. Is there anyway i can make the $GANG variable contain the... (3 Replies)
Discussion started by: SkySmart
3 Replies

3. UNIX for Advanced & Expert Users

Environmental variable

i want to set environmental variables in solaris and redhat. it should show the current directory and the default shell should be bourne shell. along with it should show the hostname.. like this hostname{/home/vipin/data}# ifconfig Thanks in advanced.:wall: Please use code tags.... (1 Reply)
Discussion started by: vipinkumarr89
1 Replies

4. OS X (Apple)

.local hostname available as an environmental variable?

Hola - I've got a script for logon which populates a database with some info when a user logs on so that we can tell how many public terminals are in use & show users which ones are free. However, the machines are DHCPed and so using $HOSTNAME gives me an unstable name for them since of course... (3 Replies)
Discussion started by: gentinphilly
3 Replies

5. Shell Programming and Scripting

Setting environmental variable for all the users in the box

Hi, I have Sun solaris x64 box in which i need to set a Environment variable for all the users in the box. This Environment varible is used by the application on the box. Could any one please help me in setting the Environment variable. Thanks, Firestar (6 Replies)
Discussion started by: firestar
6 Replies

6. Shell Programming and Scripting

Setting Environmental Variable

I have a request from a programmer to set an env variable for him. I know how to do it for bash shell by adding the following line to .bash_profile export $VAR=/home/code/project/ But this will be applicable only when he is in his bash shell. What is the procedure to be followed to make... (2 Replies)
Discussion started by: Tuxidow
2 Replies

7. Shell Programming and Scripting

How to get the value of a variable which is having another value in environmental script?

Dear Folks, I am facing an issue in getting a value of a variable.Let me explain the scenario. I am having a list file say files.list in which I have mentioned 1 FILE1 2 FILE2 Then I am having an set_env.ksh in which I mentioned FILE1=/clocal/data/user/userdata.txt... (4 Replies)
Discussion started by: dinesh1985
4 Replies

8. Shell Programming and Scripting

setting ksh environmental variable

Hi, I have problem setting up environmental variables. The idea is to start with main.ksh script that will run setting.ksh, and in side of it I'll set up variables. Please take a look at my code, and help me to find my mistake. Thanks, Mila Main.ksh look like this: #!/usr/bin/ksh #... (2 Replies)
Discussion started by: mefquik
2 Replies

9. Shell Programming and Scripting

Environmental Variable

Hi, I'm exporting an environmental variable from a C program using putenv function. I'm calling the exe of the C program from shell script. But when I display the environmental variables from the Shell script, My varaible is not getting displayed. Can anyone please tell me how to get it in... (2 Replies)
Discussion started by: janemary.a
2 Replies

10. Shell Programming and Scripting

Set Oracle Environmental Variable !!

Can someone send me a shell script to set all Oracle environment variable which is working. I have the following script which works but not 100%. Please advice what you think is wrong. if # Command executed from a terminal then ORACLE_SID="" ... (4 Replies)
Discussion started by: uuser
4 Replies
Login or Register to Ask a Question