Conda命令在命令提示符下工作,但不在bash脚本中工作

ran*_*ker 7 python linux bash anaconda conda

只要我通过Linux终端(bash shell)使用它,我的anaconda(4.5.4)都可以正常工作。但是,在bash脚本中运行conda命令根本不起作用。

脚本test.sh包含以下几行:

#!/bin/bash
conda --version
conda activate env
Run Code Online (Sandbox Code Playgroud)

现在,运行会bash test.sh导致错误 test.sh: line 2: conda: command not found test.sh: line 3: conda: command not found

如推荐给anaconda版本> 4.4,我的.bashrc不包含

export PATH="/opt/anaconda/bin:$PATH",
Run Code Online (Sandbox Code Playgroud)

. /opt/anaconda/etc/profile.d/conda.sh
Run Code Online (Sandbox Code Playgroud)

谢谢。

ran*_*ker 8

由于@darthbith的评论,我解决了这个问题。

由于conda是bash函数,并且bash函数不能传播到独立的shell(例如,通过执行bash脚本打开),因此必须添加以下行

source /opt/anaconda/etc/profile.d/conda.sh
Run Code Online (Sandbox Code Playgroud)

调用conda命令之前,请先执行bash脚本。否则bash不会知道conda。