Bash脚本获取conda版本时出现command substitution语法错误如何解决
报错成因
你在Bash的命令替换语法中误用了其他编程语言的print()写法:
- Bash中
$()包裹的内容会被识别为待执行的命令,不需要额外加print函数调用 - Bash里未转义的圆括号属于语法关键字,你写的
print(conda -V)会被Bash解析为非法语法,因此触发了对应报错。
修复方案
直接删除$()内的print()包裹即可,正确代码如下:
echo "INFO: getting conda version" CONDA_VERSION=$(conda -V) # 若执行后提示conda命令不存在,可以先加载conda的初始化脚本(替换为你自己的conda安装路径即可): # source /opt/anaconda3/etc/profile.d/conda.sh # CONDA_VERSION=$(conda -V)
修复后执行echo $CONDA_VERSION即可输出捕获到的conda版本号。
内容的提问来源于stack exchange,提问作者Mee
相关产品推荐
相关产品推荐

