使用bash脚本添加到$ PYTHONPATH

cmo*_*ses 9 linux bash environment-variables

我写了一个bash脚本来添加到我的$PYTHONPATH.我的.sh文件包含以下内容:

sudo echo export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

我想要添加到我的.bashrc是:

PYTHONPATH=$PYTHONPATH:/path/to/new/python/module
Run Code Online (Sandbox Code Playgroud)

但是我只能添加它:

PYTHONPATH=/all/other/python/modules/already/on/path:/path/to/new/python/module
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*024 8

使用单引号:

$ echo 'export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module' >> .bashrc
$ cat .bashrc 
export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module
Run Code Online (Sandbox Code Playgroud)

shell不对单引号字符串执行变量扩展.

另请注意,如果您正在写信,则~/.bashrc不需要sudo.用户应该拥有自己的~/.bashrc.此外,如上所述,该sudo命令仅在其上运行echo.重定向>~/.bashrc是使用用户的权限级别完成的.既然echo没有必要也没有从中获益sudo,sudo实际上是一种无操作.[帽子提示:tripleee]

  • 也许强调"sudo"在这里没有做任何事情很幸运; 如果是这样,您可以创建一个用户以后无法修改的文件.幸运的是,在这里,`sudo`是一个完整的无操作,因为重定向导致用户的shell在`sudo echo`开始执行之前创建文件. (2认同)