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!
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.
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]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With