Obtener un error 'fuente: no encontrado' cuando se usa la fuente en un script bash

Estoy tratando de escribir (lo que pensé que sería) un script de bash simple que:

run virtualenv para crear un nuevo entorno a $ 1activar el entorno virtualhaga algunas cosas más (instale django, agregue django-admin.py a la ruta del virtualenv, etc.)

Paso 1 funciona bastante bien, pero parece que no puedo activar virtualenv. Para aquellos que no están familiarizados con virtualenv, crea unaactivate archivo que activa el entorno virtual. Desde la CLI, lo ejecutas usandosource

source $env_name/bin/activate

Where $ env_name, obviamente, es el nombre del directorio en el que está instalado el env virtual.

En mi script, después de crear el entorno virtual, almaceno la ruta al script de activación de esta manera:

activate="`pwd`/$ENV_NAME/bin/activate"

Pero cuando llamo asource "$activate", Entiendo esto

/home/clawlor/bin/scripts/djangoenv: 20: source: not found

Yo sé eso$activate contiene la ruta correcta al script de activación, de hecho, incluso pruebo que hay un archivo antes de llamar asource. Perosource parece que no puede encontrarlo. También he intentado ejecutar todos los pasos manualmente en la CLI, donde todo funciona bien.

En mi investigación encontréeste script, que es similar a lo que quiero pero también está haciendo muchas otras cosas que no necesito, como almacenar todos los entornos virtuales en un directorio ~ / .virtualenv (o lo que sea que esté en $ WORKON_HOME). Pero me parece que está creando el camino haciaactivate, y llamando asource "$activate" básicamente de la misma manera que yo.

Aquí está el guión en su totalidad:

#!/bin/sh

PYTHON_PATH=~/bin/python-2.6.1/bin/python

if [ $# = 1 ]
then
    ENV_NAME="$1"
    virtualenv -p $PYTHON_PATH --no-site-packages $ENV_NAME
    activate="`pwd`/$ENV_NAME/bin/activate"

    if [ ! -f "$activate" ]
    then
        echo "ERROR: activate not found at $activate"
        return 1
    fi

    source "$activate"
else
    echo 'Usage: djangoenv ENV_NAME'
fi

DISCLAIMER: Mi bash script-fu es bastante débil. Me siento bastante cómodo en la CLI, pero puede haber alguna razón extremadamente estúpida por la que esto no funciona.

Respuestas a la pregunta(3)

Su respuesta a la pregunta