Linux 带有多个命令的Bash脚本在进入新的conda环境时停止

Linux 带有多个命令的Bash脚本在进入新的conda环境时停止,linux,bash,conda,Linux,Bash,Conda,我需要一个可以添加到我的~/.bashrc中的命令,该命令按以下顺序执行: 将cd复制到一个目录 激活康达环境 打开jupyter笔记本 我当前使用的命令如下所示: alias foo=' cd ~/Documents/bar conda activate foobar jupyter notebook ' 但是执行在conda activate foobar命令后停止 是否有一种方法可以确保执行所有3个命令,并且在进入新环境时不会停止?对复合命令使用函数,而不是别名。除此之外,检查con

我需要一个可以添加到我的
~/.bashrc
中的命令,该命令按以下顺序执行:

  • 将cd复制到一个目录
  • 激活康达环境
  • 打开jupyter笔记本
我当前使用的命令如下所示:

alias foo='
cd ~/Documents/bar
conda activate foobar
jupyter notebook
'
但是执行在
conda activate foobar
命令后停止


是否有一种方法可以确保执行所有3个命令,并且在进入新环境时不会停止?

对复合命令使用函数,而不是别名。除此之外,检查
conda activate
是否修改您已经运行的shell的状态;如果它启动了一个新的shell,那么新的shell当然不会继续执行相同的函数或别名。一种测试方法是查看运行
conda activate
是否会更改
$BASHPID
。或者,您可以查看
类型conda
。如果
conda
本身是一个函数,那么它可以修改正在运行的shell的状态。如果它是一个外部脚本(并且是这样执行的而不是源代码),那么启动一个新的shell是唯一可能实现的方法。代码>在命令之间,回车在别名中不起作用。