Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 用于自动更改到项目目录的激活后脚本_Bash_Virtualenv_Virtualenvwrapper_Virtualenv Commands - Fatal编程技术网

Bash 用于自动更改到项目目录的激活后脚本

Bash 用于自动更改到项目目录的激活后脚本,bash,virtualenv,virtualenvwrapper,virtualenv-commands,Bash,Virtualenv,Virtualenvwrapper,Virtualenv Commands,我的virtualenv postactivate脚本中有一行条目,它通知我所在的virtualenv: export PS1="\[\033[40;1;36m\](`basename $VIRTUAL_ENV`)\[\033[00m\]\[\033[01;34m\] \W\[\033[00m\] \$ " 我想添加一行,当我发出workon命令时,该行也将更改为我的项目目录。这实际上只适用于我,因此我很高兴在myproject上发出working命令,并使用myproject作为唯一变量,然

我的virtualenv postactivate脚本中有一行条目,它通知我所在的virtualenv:

export PS1="\[\033[40;1;36m\](`basename $VIRTUAL_ENV`)\[\033[00m\]\[\033[01;34m\] \W\[\033[00m\] \$ "
我想添加一行,当我发出workon命令时,该行也将更改为我的项目目录。这实际上只适用于我,因此我很高兴在myproject上发出working命令,并使用myproject作为唯一变量,然后更改为/path/to/projects/myproject。这将工作,因为我的所有项目都在同一个目录中。证明:

cd ~/projects/django-projects/$1
可以,但是命令变量实际上是post_activate。我可以很容易地从命令行获取字符串并将其传递给这个脚本吗


非常感谢您的帮助。

我就是这样做的,尽管我认为有多种解决方案:

dir=${VIRTUAL_ENV:17}; cd ~/projects/django-projects/$dir

ok dir=${VIRTUAL_ENV:17};cd~/projects/django projects/$dir对我来说很有用。这对于获取虚拟环境名称更好:dir=$basename$virtual_ENV;为什么不干脆用cd$VIRTUAL_ENV?