在 osx mavericks 上将 virtualenv 与 fish shell 一起使用

using virtualenv with fish shell on osx mavericks

我正在尝试在 fish shell 上使用 virtualenv,但出现错误,

userName@macHost ~/v/foobar> source bin/activate
fish: Illegal command name '}'
/Users/userName/virtualPyEnvs/foobar/bin/activate (line 37): }
                                                                 ^
in . (source) call of file '/Users/userName/virtualPyEnvs/foobar/bin/activate',
    called on standard input,

fish: Could not locate end of block. The 'end' command is missing, misspelled or a ';' is missing.
/Users/userName/virtualPyEnvs/foobar/bin/activate (line 78): if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
                                                                 ^
in . (source) call of file '/Users/userName/virtualPyEnvs/foobar/bin/activate',
    called on standard input,


       if − if ‐ conditionally execute a command


if ‐ conditionally execute a command
   Synopsis
       if CONDITION; COMMANDS_TRUE...; [else if CONDITION2;
       COMMANDS_TRUE2...;] [else; COMMANDS_FALSE...;] end

   Description
       if will execute the command CONDITION. If the condition’s exit status
       is 0, the commands COMMANDS_TRUE will execute. If the exit status is
       not 0 and else is given, COMMANDS_FALSE will be executed.

       In order to use the exit status of multiple commands as the condition
       of an if block, use begin; ...; end and the short circuit commands and
       and or.

       The exit status of the last foreground command to exit can always be
       accessed using the $status variable.

   Example
       if test ‐f foo.txt
               echo foo.txt exists
       else if test ‐f bar.txt
               echo bar.txt exists
       else
               echo foo.txt and bar.txt do not exist
       end

       will print foo.txt exists if the file foo.txt exists and is a regular
       file, otherwise it will print bar.txt exists if the file bar.txt exists
       and is a regular file, otherwise it will print foo.txt and bar.txt do
       not exist.

source: Error while reading file '/Users/userName/virtualPyEnvs/foobar/bin/activate'

如果您能帮助解决这个问题,我们将不胜感激。

How to get virtualenv to work with fish shell 的副本?

您也可以尝试 virtualfish