I am trying to use virtualenv on fish shell, but it is giving an error,
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'
any help will be greatly appreciated in sorting out this problem.
Duplicate of How to get virtualenv to work with fish shell ?
You might also try virtualfish.