用bash脚本添加到$ PYTHONPATH

用bash脚本添加到$ PYTHONPATH

问题描述:

我写了一个bash脚本添加到我的$PYTHONPATH。我.sh文件有以下几点:

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

我想添加到我的.bashrc是:

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

但是我只能得到它补充:

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

我不不希望将实际的$PYTHONPATH值添加到我的.bashrc,只是变量名称。请帮忙!

使用单引号:

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

外壳不执行对单引号字符串变量扩展。

还请注意,如果您正在写入~/.bashrc,您不应该需要sudo。用户应该拥有自己的~/.bashrc。此外,正如所写,sudo命令仅在echo上运行。重定向>~/.bashrc以用户的权限级别完成。由于echosudo没有需要也没有获益,所以sudo实际上是不适用的。 [帽子提示:tripleee]

+1

这样做。谢谢! – cmoses

+2

也许强调,'sudo'在这里什么都不做;如果是这样,你可以创建一个用户以后不能修改的文件。幸运的是,在这里,'sudo'是一个完全不可操作的,因为重定向会导致用户的shell在'sudo echo'开始执行之前创建文件。 – tripleee

+0

@tripleee非常好的一点。回答更新sudo-echo讨论。 – John1024