Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding to $PYTHONPATH with bash script

I wrote a bash script to add to my $PYTHONPATH. My .sh file has the following:

sudo echo export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module >> ~/.bashrc

What I want to be added to my .bashrc is:

PYTHONPATH=$PYTHONPATH:/path/to/new/python/module

However I can only get it to add:

PYTHONPATH=/all/other/python/modules/already/on/path:/path/to/new/python/module

I don't want the actual $PYTHONPATH value to be added to my .bashrc, just the variable name. Please help!

like image 315
cmoses Avatar asked Jul 26 '16 00:07

cmoses


People also ask

How add Pythonpath Linux?

If you are using the standard flavour of Linux, open up the bash shell and type the following phrase, export PATH=”$PATH:/usr/local/bin/python” and press Enter. If you have access to either sh or ksh shell, then open up the terminal and type the following, PATH=”$PATH:/usr/local/bin/python” and press Enter.


1 Answers

Use single-quotes:

$ echo 'export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module' >> .bashrc
$ cat .bashrc 
export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module

The shell does not perform variable expansion on single-quoted strings.

Note also that, if you are writing to ~/.bashrc, you should not need sudo. A user should own his own ~/.bashrc. Further, as written, the sudo command only operated on echo. The redirection >~/.bashrc is done with the user's level of permission. Since echo has no need of and gets no benefit from sudo, sudo is a practically a no-op. [Hat tip: tripleee]

like image 172
John1024 Avatar answered Sep 30 '22 11:09

John1024