Appending a path in user's PATH variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Appending a path in user's PATH variable
# 1  
Old 03-02-2011
Appending a path in user's PATH variable

Hello Folks,

I want to append a path in user's PATH variable which should be available in current session.

Background
Numerous persons will run a utility.
Aim is to add the absolute path of the utility the first time it runs so that next runs have the PATH in env & users can directly run the utility without giving the absolute path.
Appended PATH should exist in the user's current session.

Where i got stuck
Shell scripts run as a separate process, hence, variables set there won't be accessible to parent shell.
We can use "." or "source" for the same.

These constructs are different for different shells.
Since the users are quite big chances of them running different shells is quite high.

This fails my run with . or source.

How to determine user's shell
echo $SHELL
This gives the developers shell. I changed my shell to different but the SHELL variable still gives the older shell value.
Hence, unable to determine the shell as well.

Please let me know how to achieve this.
Thanks in advance
# 2  
Old 03-02-2011
Bug

OK,could you tell the way you change SHELL.
you can use
Code:
env|grep SHELL

to see what the SHELL is.
and use
Code:
pstree

to see the tree structure of your SHELL.
for me it's like this
Code:
├─sshd─┬─sshd───bash
     │      └─sshd───bash───pstree

# 3  
Old 03-02-2011
We are using Free BSD

> echo $SHELL
/bin/tcsh
> bash
$ echo $SHELL
/bin/tcsh

$ env|grep SHELL
SHELL=/bin/tcsh

In all cases it's pinned to tcsh though i am working with bash.

pstree/ptree are not installed.
Doubt if IT will install on a single user's request.
# 4  
Old 03-02-2011
echo $SHELL will always tell the default shell for the user.
to check the current shell, use echo $0
This User Gave Thanks to clx For This Post:
# 5  
Old 03-02-2011
Wow, $0 gives the present shell.

Did a quick survey & found users are using all shell's available: bash, ksh, tcsh, ksh, etc
Do i need write for every shell or is there a simpler option available.

Problem sounds very simple but unable to get the solution
Add a variable in user's current session via a shell script.
# 6  
Old 03-02-2011
Bug OK,I got what you want.

U can set a default shell for users by edit "/etc/default/useradd"(CentOS 5.4)
Code:
[root@**** ~]#more /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

and also if the user have been exist. you can edit ".bash_profile" in user's home.
Code:
[root@*** ~]# cat /home/mysql/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

for u are using BSD , try find / -name "useradd" to find the file.

Last edited by lori_lin; 03-02-2011 at 06:53 AM.. Reason: forget sth.
# 7  
Old 03-02-2011
Consider the scenario where you are providing a utility for general use.

This doesn't entitle you to change the profiles of anybody.
Additionally we have a standard shell, but users customize it based on their preferences.
They start with x, but change it a, b, c, etc.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Makefile missing include path Although the path exists and defined

i have make file which i try to make them generic but it keeps to compline it missing include directory this is the makefile : CXX=g++ CPPFAGS= -Wall -O0 -g -std=c++14 INCLUDES = -I/home/vagrant/libuv/include -Isrc LIBS_DIRS = -L/home/vagrant/libuv/build LDFLAGS=... (7 Replies)
Discussion started by: umen
7 Replies

2. UNIX for Beginners Questions & Answers

Convert Relative path to Absolute path, without changing directory to the file location.

Hello, I am creating a file with all the source folders included in my git branch, when i grep for the used source, i found source included as relative path instead of absolute path, how can convert relative path to absolute path without changing directory to that folder and using readlink -f ? ... (4 Replies)
Discussion started by: Sekhar419
4 Replies

3. UNIX for Advanced & Expert Users

Command to see the logical volume path, device mapper path and its corresponding dm device path

Currently I am using this laborious command lvdisplay | awk '/LV Path/ {p=$3} /LV Name/ {n=$3} /VG Name/ {v=$3} /Block device/ {d=$3; sub(".*:", "/dev/dm-", d); printf "%s\t%s\t%s\n", p, "/dev/mapper/"v"-"n, d}' Would like to know if there is any shorter method to get this mapping of... (2 Replies)
Discussion started by: royalibrahim
2 Replies

4. Shell Programming and Scripting

Generate class path dynamically based on source path

Hi experts, I have multiple file names ending with .jsp located in $SOME_DIR, $SOME_DIR/f1/,$SOME_DIR/f2/test,$SOME_DIR/f3/fa and there are equivalent class files in $SOME_DIR/WEB-INF/classes/_pages,$SOME_DIR/WEB-INF/classes/_pages/_f1,... (0 Replies)
Discussion started by: oraclermanpt
0 Replies

5. Shell Programming and Scripting

Moving files from parent path to multiple child path using bash in efficient way

Hi All, Can you please provide some pointers to move files from Base path to multiple paths in efficient way.Folder Structure is already created. /Path/AdminUser/User1/1111/Reports/aaa.txt to /Path/User1/1111/Reports/aaa.txt /Path/AdminUser/User1/2222/Reports/bbb.txt to... (6 Replies)
Discussion started by: karthikgv417
6 Replies

6. Shell Programming and Scripting

Path a variable to sed that includes a path

Hi I'm trying to select text between two lines, I'm using sed to to this, but I need to pass variables to it. For example start="BEGIN /home/mavkoup/data" end="END" sed -n -e '/${start}/,/${end}/g' doesn't work. I've tried double quotes as well. I think there's a problem with the / in the... (4 Replies)
Discussion started by: mavkoup
4 Replies

7. Shell Programming and Scripting

absolute path for a script ran with relative path

I have a script in which i want to print absolute path of the same script irrespective of path from where i run script. I am using test.sh: echo "pwd : `pwd`" echo "script name: $0" echo "dirname: `dirname $0`" when i run script from /my/test/dir/struct as ../test.sh the output i... (10 Replies)
Discussion started by: rss67
10 Replies

8. Shell Programming and Scripting

one liner to extract path from PATH variable

Hi, Could anyone help me in writing a single line code by either using (sed, awk, perl or whatever) to extract a specific path from the PATH environment variable? for eg: suppose the PATH is being set as follows PATH=/usr/bin/:/usr/local/bin:/bin:/usr/sbin:/usr/bin/java:/usr/bin/perl3.4 ... (2 Replies)
Discussion started by: royalibrahim
2 Replies

9. Shell Programming and Scripting

remove a path from PATH environment variable

Hi I need a script which will remove a path from PATH environment variable. For example $echo PATH /usr/local/bin:/usr/bin:test/rmve:/usr/games $echo rmv test/rmve Here I need a shell script which will remove rmv path (test/rmve) from PATH... (9 Replies)
Discussion started by: madhu84
9 Replies

10. Shell Programming and Scripting

Executing Commands From Non-Standard Path (Changing user's PATH secretely???)

Hi: I have a requirement as below: I have some standard Unix commands modified and kept them in a directory say /usr/clsh/bin. For example I have a script named "ls" kept here which is modified version of "ls" (say it always gives long listing i.e. ls -l). When any user logs on and types... (2 Replies)
Discussion started by: ramesh_samane
2 Replies
Login or Register to Ask a Question