检查输入是否在Conda环境中

时间:2018-03-13 12:09:33

标签: bash shell unix

我有一个bash文件,我需要包含验证检查。基本上,文件的目的是接受输入并激活虚拟环境。 这就是用这一行完成的:

source activate $1

但是,我需要检查输入是否是有效的conda环境。 当我执行以下命令时:

conda env list

它将返回:

# conda environments:
#
py2713                   /opt/anaconda2/envs/py2713
py341                    /opt/anaconda2/envs/py341
py345                    /opt/anaconda2/envs/py345
root                  *  /opt/anaconda2

即脚本必须检查输入是py2713py341py345还是root。如果它不在环境列表中,则应返回消息并退出。

1 个答案:

答案 0 :(得分:2)

可以执行以下操作来检查是否将正确的env传递到文件中 您将使用以下命令

运行shell文件
sh file.sh py2713

file.sh将包含:

ENVS=$(conda env list | awk '{print $1}' )
if [[ $ENVS = *"$1"* ]]; then
   source activate $1
else 
   echo "Error: Please provide a valid virtual environment. For a list of valid virtual environment, please see 'conda env list' "
   exit
fi;