Shell代码解读

源代码

sh 复制代码
#!/bin/bash

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# should match env name from YAML
ENV_NAME=rlgpu

pushd "${ROOT_DIR}/python"

    # setup conda
    CONDA_DIR="$(conda info --base)"
    source "${CONDA_DIR}/etc/profile.d/conda.sh"

    # deactivate the env, if it is active
    ACTIVE_ENV_NAME="$(basename ${CONDA_PREFIX})"
    if [ "${ENV_NAME}" = "${ACTIVE_ENV_NAME}" ]; then
        conda deactivate
    fi

    # !!! this removes existing version of the env
    conda remove -y -n "${ENV_NAME}" --all

    # create the env from YAML
    conda env create -f ./rlgpu_conda_env.yml
    if [ $? -ne 0 ]; then
        echo "*** Failed to create env"
        exit 1
    fi

    # activate env
    conda activate "${ENV_NAME}"
    if [ $? -ne 0 ]; then
        echo "*** Failed to activate env"
        exit 1
    fi

    # double check that the correct env is active
    ACTIVE_ENV_NAME="$(basename ${CONDA_PREFIX})"
    if [ "${ENV_NAME}" != "${ACTIVE_ENV_NAME}" ]; then
        echo "*** Env is not active, aborting"
        exit 1
    fi

    # install isaacgym package
    pip install -e .

popd

echo "SUCCESS"

逐行解读

sh 复制代码
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
复制代码
这段shell代码的主要目的是获取当前脚本的所在目录的绝对路径,并将其赋值给变量ROOT_DIR。下面是代码的解释:
  1. dirname "${BASH_SOURCE[0]}" :Bash内置的变量BASH_SOURCE[0]表示当前脚本所在的路径,dirname命令会取得该路径的父目录。

  2. cd "$(dirname "${BASH_SOURCE[0]}")" : cd命令用于切换当前工作目录,$(...)是命令替换的语法,将dirname命令的结果作为参数传递给cd命令。

  3. pwd :pwd命令用于打印当前工作目录的绝对路径。

  4. ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" :将cd命令和pwd命令的结果结合起来,并将结果赋值给变量ROOT_DIR。最终,ROOT_DIR将保存当前脚本的所在目录的绝对路径。

相关推荐
reasonsummer6 分钟前
【教学类-70-06】20260104“折纸-花纹镜”(花纹图案+上下打孔+无学号框)小2班第一次尝试
python·通义万相
YJlio23 分钟前
PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)
开发语言·笔记·python·学习·django·pdf·pygame
wjykp29 分钟前
part6 PyTorch
人工智能·pytorch·python
拾柒SHY1 小时前
Python爬虫入门自学笔记
笔记·爬虫·python
Franciz小测测1 小时前
如何实现 Web 触发后的“离线”升级?Systemd 异步机制与 A/B 状态机切换详解
python·部署·自动升级·离线升级
小北方城市网1 小时前
第 9 课:Python 全栈项目性能优化实战|从「能用」到「好用」(企业级优化方案|零基础落地)
开发语言·数据库·人工智能·python·性能优化·数据库架构
E_ICEBLUE1 小时前
PPT 智能提取与分析实战:把演示文档变成结构化数据
数据库·python·powerpoint
JSU_曾是此间年少1 小时前
pytorch自动微分机制探寻
人工智能·pytorch·python
敢敢のwings2 小时前
VGGT-Long:极简主义驱动的公里级单目三维重建系统深度解析(Pytorch安装手册版)
人工智能·pytorch·python
aiguangyuan2 小时前
CART算法简介
人工智能·python·机器学习