Linux 在一个进程中从bash脚本运行两个命令(conda)

Linux 在一个进程中从bash脚本运行两个命令(conda),linux,bash,conda,Linux,Bash,Conda,我正在尝试编写一个bash脚本,其中包括停用和删除conda环境。下面是一个示例,remove_env.sh: #/bin/bash #获取bash中可用的conda命令 eval“$(conda shell.bash hook)” #停用环境 康达酒店 #移除环境 conda remove--命名my_env--全部--是 必须停用环境才能将其删除 不幸的是,这不起作用。我在终端中执行此操作: $conda激活我的环境 $/删除_env.sh CondaEnvironment错误:无法删除当

我正在尝试编写一个bash脚本,其中包括停用和删除conda环境。下面是一个示例,
remove_env.sh

#/bin/bash
#获取bash中可用的conda命令
eval“$(conda shell.bash hook)”
#停用环境
康达酒店
#移除环境
conda remove--命名my_env--全部--是
必须停用环境才能将其删除

不幸的是,这不起作用。我在终端中执行此操作:

$conda激活我的环境
$/删除_env.sh
CondaEnvironment错误:无法删除当前环境。停用并再次运行conda remove
我认为这个问题与—本质上,环境在一个进程中被停用,但是删除调用在另一个进程中运行,而另一个进程没有停用环境。但我不完全确定

一些注意事项:

  • 我不能使用
    source remove\u env.sh
    -我必须能够使用
    /remove\u env.sh
  • 我尝试过这个,但没有成功:
#/bin/bash
#获取bash中可用的conda命令
eval“$(conda shell.bash hook)”
#停用并删除环境
conda deactivate&&conda remove--name my_env--all--yes
  • 我在my
    ~./bashrc
  • 我不能使用别名-它必须是bash脚本

    • 感谢乔纳森在评论中给出的答案。你完全正确,我完全忽略了康达手册中的蓝色音符。我能够做到这一点:

      #!/bin/bash
      
      # Get the conda command available in bash
      eval "$(conda shell.bash hook)"
      
      # Activate the environment
      conda activate my_env
      
      # Deactivate environment
      conda deactivate
      
      # Remove environment
      conda remove --name my_env --all --yes
      

      我认为无论你是否带参数激活conda都是有效的。

      谢谢Jonathan在评论中给出的答案。你完全正确,我完全忽略了康达手册中的蓝色音符。我能够做到这一点:

      #!/bin/bash
      
      # Get the conda command available in bash
      eval "$(conda shell.bash hook)"
      
      # Activate the environment
      conda activate my_env
      
      # Deactivate environment
      conda deactivate
      
      # Remove environment
      conda remove --name my_env --all --yes
      

      我认为无论您是否使用参数激活conda都是有效的。

      或者,使用conda的
      运行
      工具,可以避免手动激活。就是说,

      #!/usr/bin/env conda run bash
      
      conda env remove -n my_env -y
      

      或者,使用Conda的
      run
      工具,可以避免手动激活。就是说,

      #!/usr/bin/env conda run bash
      
      conda env remove -n my_env -y
      
      这本手册对你没有帮助吗?看起来,在删除活动环境之前,您应该使用
      conda activate
      (且无参数)激活默认环境。有关的手册是否没有帮助?在删除活动环境之前,似乎应该使用
      conda activate
      (不带参数)激活默认环境。