我有一个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
即脚本必须检查输入是py2713
,py341
,py345
还是root
。如果它不在环境列表中,则应返回消息并退出。
答案 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;